搜档网
当前位置:搜档网 › stc12c5a60s2看门狗程序

stc12c5a60s2看门狗程序

/*
看门狗: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
}
}

相关主题