- 单片机应用系统受到干扰可能会引起程序“跑飞”或“死循环”,会使系统失控。如果操作人员在场,可按人工复位按钮,强制系统复位。但操作人员不可能一直监视着系统,即使监视着系统,也往往是在引起不良后果之后才进行人工复位。能不能不要人来监视,使系统摆脱失控状态,重新从0000H地址处执行程序呢?这时可采用“看门狗”技术。
- “看门狗”技术就是使用一个**“看门狗”定时器来对系统时钟不断计数,监视程序的运行。当看门狗启动运行后,为防止看门狗定时器的不必要溢出而引起单片机的非正常的复位,应定期地把看门狗清0**,以保证看门狗不溢出。
- “看门狗”部件,包含1个14位看门狗定时器和看门狗复位寄存器(表2-4中的特殊功能寄存器WDTRST,地址A6H)。开启看门狗定时器后,14位定时器会自动对系统时钟12分频后的信号计数,即每16384(2^14)个机器周期溢出一次,并产生一个高电平复位信号,使单片机复位。采用12MHz的系统时钟时,则每16384µs产生一个复位信号。(时钟频率为12MHz,则时钟周期为1/12。时钟12分频后,即(1/12)*12 = 1us,即一个机器周期为1us)
- 当由于干扰,使单片机程序“跑飞”或陷入“死循环”时,单片机也就不能正常运行程序来定时地把看门狗定时器清0,看门狗定时器计满溢出时,将在AT89S52的RST引脚上输出一个正脉冲(宽度为98个时钟周期),使单片机复位,在系统的复位入口0000H处重新开始执行主程序,从而使程序摆脱 “跑飞”或“死循环”状态,让单片机归复于正常的工作状态。
- 看门狗的启动和清0的方法是一样的。实际应用中,用户只要向寄存器WDTRST(地址为A6H)先写入1EH,接着写入E1H,看门狗定时器便启动计数。为防止看门狗定时器启动后产生不必要的溢出,在执行程序的过程中,应在16384µs(时钟为12MHz时)内不断地复位清“0” 看门狗。
- 有关看门狗定时器的具体使用,请见第14.8节。
【单片机】2.9 看门狗定时器(WDT)功能简介
最新推荐文章于 2025-10-28 11:34:45 发布
看门狗技术用于监控单片机程序运行,通过定时器计数防止程序因干扰导致的失控。当程序异常时,看门狗定时器溢出触发复位,使系统在0000H地址重启,恢复正常状态。启动和清除看门狗定时器需特定指令,确保在16384µs内复位以避免不必要的单片机复位。
3023

被折叠的 条评论
为什么被折叠?



