【摘要】:“看门狗”技术就是使用一个定时器来不断计数,监视程序的运行。当看门狗定时器启动运行后,为防止看门狗定时器的不必要溢出引起单片机的非正常的复位,应定期地把看门狗定时器清0,以保证看门狗定时器不溢出。单片机片内的“看门狗”部件,包含1个14位看门狗定时器和看门狗复位寄存器。实际应用中,用户只要向寄存器WDTRST先写入1EH,接着写入E1H,看门狗定时器便启动计数。
单片机应用系统受到干扰可能会引起程序跑飞或死循环,会使系统失控。如果操作人员在场,可按人工复位按钮,强制系统复位。但操作人员不可能一直监视着系统,即使监视着系统,也往往是在引起不良后果之后才进行人工复位。能不能不要人来监视,使系统摆脱失控状态,重新从0000H地址处执行程序呢?这时可采用“看门狗”技术。“看门狗”技术就是使用一个定时器来不断计数,监视程序的运行。当看门狗定时器启动运行后,为防止看门狗定时器的不必要溢出引起单片机的非正常的复位,应定期地把看门狗定时器清0,以保证看门狗定时器不溢出。
单片机片内的“看门狗”部件,包含1个14位看门狗定时器和看门狗复位寄存器(中的特殊功能寄存器WDTRST,地址A6H)。开启看门狗定时器后,14位定时器会自动对系统时钟12分频后的信号计数,即每16384(214)个机器周期溢出一次,并产生一个高电平复位信号,使单片机复位。采用12MHz的系统时钟时,则每16384μs产生一个复位信号。当由于干扰,使单片机程序跑飞或陷入死循环时,单片机也就不能正常运行程序来定时地把看门狗定时器清0,看门狗定时器计满溢出时,将在AT89S51的RST引脚上输出一个正脉冲(宽度为98个时钟周期),使单片机复位,在系统的复位入口0000H处重新开始执行主程序,从而使程序摆脱跑飞或死循环状态,让单片机归复于正常的工作状态。(www.xing528.com)
看门狗的启动和清0的方法是一样的。实际应用中,用户只要向寄存器WDTRST(地址为A6H)先写入1EH,接着写入E1H,看门狗定时器便启动计数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。