【单片机】2.9 看门狗定时器(WDT)功能简介

看门狗技术用于监控单片机程序运行,通过定时器计数防止程序因干扰导致的失控。当程序异常时,看门狗定时器溢出触发复位,使系统在0000H地址重启,恢复正常状态。启动和清除看门狗定时器需特定指令,确保在16384µs内复位以避免不必要的单片机复位。
  • 单片机应用系统受到干扰可能会引起程序“跑飞”或“死循环”,会使系统失控。如果操作人员在场,可按人工复位按钮,强制系统复位。但操作人员不可能一直监视着系统,即使监视着系统,也往往是在引起不良后果之后才进行人工复位。能不能不要人来监视,使系统摆脱失控状态,重新从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节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值