1、at89S51 看门狗at89s51 令人兴奋的是她在芯片内集成了看门狗的功能,而且用法很简单,这使得我们不用再为了提高系统的稳定性再外加一块电路了,下面介绍看门狗功能的具体使用方法在程序初始化中向看门狗寄存器(WDTRST 地址是 0A6H)中先写入01EH,再写入 0E1H。即可激 活看门狗。 ORG 0000H LJMP begin Begin: MOV 0A6H,#01EH ;先送 1E MOV 0A6H,#0E1H ;后送 E1 ;在程序初始化中激活看门狗。 For: MOV 0A6H,#01EH ;先送 1E MOV 0A6H,#0E1H ;后送 E1 ;喂狗指令 LJMP For
2、在 C 语言中要增加一个声明语句。 在 AT89X51.h 声明文件中增加一行 sfr WDTRST = 0xA6; Main() WDTRST=0x1E; WDTRST=0xE1;/初始化看门狗。 While (1) WDTRST=0x1E; WDTRST=0xE1;/喂狗指令 其他参考代码:AJMP MAIN ;汇编MAIN:;启动看门狗Mov 0A6H,#01EH ;先送 1EMov 0A6H,#0E1H ;后送 E1;主程序START:ACALL WDT ;调用复位看门狗子程序AJMP START;主程序;复位看门狗子程序WDT:Mov 0A6H,#01EH ;先送 1EMov 0A6H,#0E1H ;后送 E1RETEND注意事项: 1 89S51 的看门狗必须由程序激活后才开始工作。所以必须保证CPU 有可靠的上电复位。否则看门狗也无法工作。 2 看门狗使用的是 CPU 的晶振。在晶振停振的时候看门狗也无效。 3 89S51 只有 14 位计数器。在 16383 个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为 12M 时每 16 个毫秒需喂狗一次。还可利用定时器把看门狗的喂狗时间延长几秒至几分钟