80s52 watchdog sofeware 程序

preview
3星 · 超过75%的资源 需积分: 0 4 下载量 149 浏览量 更新于2009-06-13 收藏 14KB DOC 举报
80s52 Watchdog 软件程序详解 80s52 是一款基于8051微控制器系列的微处理器,具有丰富的内置功能,其中包括看门狗定时器(Watchdog Timer)。看门狗定时器是一种硬件机制,用于监控程序的运行状态,防止程序因为异常或死循环而失效。在80s52中,看门狗定时器通过特定的寄存器设置来激活和管理。 在80s52中,看门狗定时器的激活通常涉及向WDTRST(Watchdog Timer Reset)寄存器写入特定的值。根据提供的程序片段,激活看门狗的步骤包括: 1. 初始化阶段: - 向WDTRST寄存器(地址为0A6H)写入01EH。 - 然后,再次向同一寄存器写入0E1H。这两个值是按照一定的顺序写入的,它们组合在一起构成了激活看门狗所需的序列。 示例汇编代码如下: ```assembly ORG 0000H LJMP begin Begin: MOV 0A6H,#01EH ; 先送1E MOV 0A6H,#0E1H ; 后送E1 ; 初始化中激活看门狗 ``` 2. 在C语言中,为了访问WDTRST寄存器,需要在头文件AT89X51.h中声明: ```c #include "AT89X51.h" ... void main() { WDTRST = 0x1E; // 初始化看门狗 WDTRST = 0xE1; while (1) { WDTRST = 0x1E; // 喂狗指令 WDTRST = 0xE1; } } ``` 在C语言代码中,我们同样遵循了激活和喂狗的顺序。 3. 关于看门狗定时器的注意事项: - 必须在程序初始化时激活看门狗,这通常在上电复位后立即进行,确保CPU正常工作。 - 看门狗定时器依赖于微控制器的晶振。如果晶振停止工作,看门狗也将失效。 - 80s52的看门狗定时器具有14位计数器,这意味着在16383个机器周期内必须至少执行一次喂狗操作。对于12MHz的晶振,这意味着每16毫秒喂狗一次。 - 通过配合定时器,可以扩展喂狗间隔,从而将喂狗时间延长到几秒甚至几分钟。 80s52的看门狗功能为系统提供了一种安全机制,能够确保程序即使在异常情况下也能恢复正常运行。在设计嵌入式系统时,正确使用看门狗定时器是保障系统稳定性和可靠性的关键步骤之一。