工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。
下面是简单的测试程序,如果屏蔽掉喂狗命令。当液晶显示到4左右时就会从开始,重新自动加1显示。也就是程序复位了。
具体的寄存器操作参见STC的datasheet。
#include <reg52.h>
#include <lcm12864.h>
sfr WDT_CONTR = 0xc1;
volatile unsigned char num,val;
void main()
{
WDT_CONTR = 0x3c;//设置看门狗,溢出时间1.1377s.
EA = 1;
TMOD = 0x01;
TH0 = 0x3c; //50ms定时
TL0 = 0xb0;
ET0 = 1;
TR0 = 1;
Init_LCM12864Word();//初始化液晶
while(1)
{
LCM12864_wr_Data(2,1,val+0x30);//每隔200毫秒val值加1
WDT_CONTR = 0x3c; //喂狗
}
}
void Timer0() interrupt 1 using 1
{
TH0 = 0x3c;
TL0 = 0xb0;
num++;
if(num>=4)
{
num = 0;
val++;
}
}
文章评论(0条评论)
登录后参与讨论