/*
看门狗:watch dog timer
晶振时钟:12Mhz
FYL 2013.12.24
*/
#include
#define uchar unsigned char
typedef unsigned int uint;
sfr WDT_CONTR = 0xC1;
void delay(uint );
void main ()
{
uchar i,a;
i = 0;
P2 = 0X0f;
//unchar i,a; //定义必须在赋值语句的前面,否则就报错。
delay(500);
P2 = 0Xff;
delay(500);
WDT_CONTR = 0X3c;//进行分频,1s;在“空闲模式”计数。并且启动看门狗。
a = 0xfe;
while(1)
{
P2 = a;
delay(100+i*50);//延时加长,狗得不到及时喂,单片机重新复位
a = a<<1;
if(a == 0)
a = 0xfe;
WDT_CONTR = 0X3C;//喂狗1s
i++;
}
}
void delay(uint x)
{
uint j;
while(x--)
{
for(j = 0;j<500;j++) ;//大约1ms
}
}