看门狗是什么狗

简单的说就是为了防止单片机收到外界电磁干扰致使程序跑飞,程序陷入死循环,不能正常运行。我们在写程序时激活一个叫做看门狗的定时器,然后这个定时间就自动计时了,我们需要在看门狗计时的周期内定时喂狗,也就是复位定时器。一旦我们程序出错就不能及时喂狗,那么看门狗就会因为计数溢出,然后就单片机认为程序出错了,产生复位信号,使程序重新运行。

看门狗是什么狗?AT89S51看门狗如何使用

AT89S51看门狗如何使用

AT89S系列单片机的看门狗在使用之前要先声明一下,以为它没有包含在reg51.h头文件中。声明和激活看门狗程序如下:

sfr WDTRST=0XA6; 声明

void main()

{

WDTRST=0X1E;

WDTRST=0XE1;//初始化激活看门狗

while(1)

{

WDTRST=0X1E;

WDTRST=0XE1;//喂狗 如果程序陷入死循环就不会喂狗了,程序就重新运行了

其他子程序

}

}

特别说明

AT89S51只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为12M时每16个毫秒需喂狗一次。所以在实际应用中,对于大程序,要在不同位置喂狗,两次喂狗时间间隔小于溢出时间。使用看门狗要特别注意溢出时间的问题,养狗是为了看家,但养不好了程序一直复位就使自己受伤了。哈哈!

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查