什么是看门狗

看门狗,也称为watchdog timer,是计时器电路。 通常有给狗喂食的输入,输出到MCU的RST侧。 MCU正常工作时,每一端的时间向喂狗的一侧输出信号,清除WDT。 如果超过规定的时间不给狗喂食(通常在程序飞行的时候),WDT就会超时,然后返回

工作原理:系统运行后,看门狗的计数器仍然启动,看门狗自动开始计数。 如果到了一定时间还没有清除看门狗,看门狗计数器就会溢出,看门狗就会中断,系统就会复位。 使用有看门狗的芯片时,请注意看门狗。

硬件手表利用计时器来监视主程序的运行。 也就是说,在主程序运行过程中,必须在计时器时间到来之前重置计时器。 发生死循环时,或者PC指针没有返回时。 那么到了定时时间就重置单片机。 常用的WDT芯片有max813、5045、IMP 813等,价格为4~10元。

软件手表技术的原理与此相同,只是用软件的方法实现的。 毕竟以51系列而言,我们知道51单片机有两个计时器,可以用这两个计时器来监测主程序的运行。 可以为T0设定一定的计时器时间,在发生计时器中断时给变量赋值。 该变量在主程序开始执行时已有初始值。 在此设定比主程序的执行时间小的计时器值。 这样,在主程序的末尾判断变量值,如果值如预期那样变化,则T0中断正常,如果没有变化,则复位程序。 T1为了监视主程序的动作,在T1中设定一定的定时器时间,通过主程序进行复位。 如果在一定时间内无法复位,T1的计时器中断将使单片机复位。 在此,T1的定时时间设定得比主程序的执行时间大,使主程序具有一定的富馀。 T0计时器中断子程序监视T1的中断是否正常。 现在,周期为T0监视T1,T1监视主程序,主程序又监视T0,保证了系统的稳定运行。

51系列有专用的看门狗计时器,对系统的频率进行分频计数,计时器溢出时会引起复位。看门狗可以设定溢出率,也可以单独作为计时器使用。

凌阳61的看门狗比较单一,一个是时间单一,二是功能在实际使用中只需在循环中输入清犬指令即可。

C8051Fxxx单片机内部也有使用21位系统时钟的计时器,该计时器检测对该控制寄存器的两次特定写入操作的时间间隔。 如果这个时间间隔超过了编程的极限值,就会发生WDT复位。

————- -请参阅

看门狗使用注意事项:大多数51系列单片机都有看门狗,如果看门狗没有计时器清除,就会重置。 这可以防止程序飞行。 设计人员应当清楚看门狗的溢出时间,并决定在适当的时候清除看门狗。 看门狗也不能太频繁。 否则会浪费资源。 程序正常运行时,软件每隔一定时间(小于计时器的溢出周期)对计时器赋予置位数,可以预防溢出中断导致的错误复位。

看门狗操作:看门狗是恢复系统正常运行、有效的监控管理器(负责锁定光驱、锁定任意指定程序,让孩子在家无节制地玩游戏、上网、看视频

系统软件“看门狗”的设计思路:

1 .看门狗计时器T0的设定。 在初始化块中设定T0的动作方法,打开中断和计数功能。 系统Fosc=12 MHz,T0为16位计数器,最大计数值为(2的10次方)-1=65 535,T0输入计数频率为. Fosc/12,溢出周期为(65 535 1)/1=65536 ()

2 .计算主控程序循环所需时间。 考虑到系统的各功能模块及其循环数,本系统主控制程序的执行时间约为16.6 ms。 系统设置“看门狗”计时器T0的计时器30ms。 (T0的初始值为65 536-30 000=35 536 )。 在主程序的每个周期中更新T0的初始值。 如果程序进入“死循环”,T0的初始值在30 ms内没有更新,“看门狗”计时器T0就会溢出并申请中断。

3 .设计应对t0溢出的中断服务程序。 该子程序向对应于T0的中断向量地址(000BH )写入“无条件迁移”命令,将计算机拖回到整个程序的第一行,重新初始化单片机,得到正确的执行顺序后