1、AT89S52 看门狗演示程序,程序来源网上,本人写片验证过,对学习看门狗很有帮助,供朋友们参考。*在 16383 个机器周期内必须至少喂狗一次。当晶振为 12M 时每 16 个毫秒需喂狗一次。激活看门狗后,如果喂狗正确,p0.2 引脚上的 LED 亮一下后,p0.3 上的 LED 连续闪烁发光。激活看门狗后,如果不喂狗(取消WG1: WG2:行) 则程序连续复位(p0.2 引脚上的 LED 连续闪烁)*ORG 0000 LJMP MAIN ORG 000BH ;定时器 0 的中断向量地址 AJMP TIME0 ;跳转到真正的定时器程 ORG 30HMAIN: SETB p0.2 LCALL
2、DELAY CLR p0.2 LCALL DELAY SETB p0.2 LCALL DELAY MOV TMOD,#00000001B ;定时/计数器 0 工作于方式 1 MOV TH0,#0EAH MOV TL0,#60H ;即 60000 SETB EA ;开总中断允 SETB ET0 ;开定时/计数器 0 允许 SETB TR0 ;定时/计数器 0 开始运 JH1: MOV 0A6H,#01EH ;在程序初始化中激活看门狗 JH2: MOV 0A6H,#0E1H ;在程序初始化中激活看门狗LOOP: SETB p0.3 LCALL DELAY CLR p0.3 LCALL DELAY
3、LJMP LOOPTIME0: PUSH ACC ;定时器 0 的中断处理程序; PUSH PSW ;将 PSW 和 ACC 推入堆栈保护 WG1: MOV 0A6H,#01EH ;喂狗指令, WG2: MOV 0A6H,#0E1H ;喂狗指令,可以将这两句注释后看不喂狗的情形MOV TH0,#0EAH MOV TL0,#60H ;重置定时常数 POP PSW POP ACC RETI ;延时子程序DELAY: MOV R7,#250D1: MOV R6,#250DJNZ R6,$ DJNZ R7,D1 RET ENDAT89S52 看门狗演示程序作者:啊辉 发布时间:2009-10-08 1
4、4:32:20 浏览次数:212;*;AT89S52 看门狗演示程序;程序初始化时;P1.7 引脚上的 LED 闪烁发光;激活看门狗后,如果不喂狗,则复位(P1.1 引脚上的 LED 闪一下);*ORG 0000LJMP MAINORG 000BH ;定时器 0 的中断向量地址AJMP TIME0 ;跳转到真正的定时器程ORG 30HMAIN: SETB P1.1LCALL DELAYCLR P1.1LCALL DELAYSETB P1.1LCALL DELAYMOV TMOD,#00000001B ;定时/计数器 0 工作于方式 1MOV TH0,#0EAHMOV TL0,#60H ;即 6
5、0000SETB EA ;开总中断允SETB ET0 ;开定时/计数器 0 允许SETB TR0 ;定时/计数器 0 开始运MOV 0A6H,#01EHMOV 0A6H,#0E1H ;在程序初始化中激活看门狗。LOOP: SETB P1.7LCALL DELAYCLR P1.7LCALL DELAYLJMP LOOP;定时器 0 的中断处理程序TIME0:PUSH ACCPUSH PSW ;将 PSW 和 ACC 推入堆栈保护MOV 0A6H,#01EHMOV 0A6H,#0E1H ;喂狗指令,可以将这两句注释后看不喂狗的情形MOV TH0,#0EAHMOV TL0,#60H ;重置定时常数POP PSWPOP ACCRETI;延时子程序DELAY: MOV R7,#250D1: MOV R6,#250D2: DJNZ R6,D2DJNZ R7,D1RETEND;在 16383 个机器周期内必须至少喂狗一次。当晶振为 12M 时每 16 个毫秒需喂狗一次。