📄 at89s52看门狗演示程序.txt
字号:
AT89S52看门狗演示程序
;*****************************************************
;在16383个机器周期内必须至少喂狗一次。当晶振为12M时每16个毫秒需喂狗一次。
;AT89S52看门狗演示程序
;程序初始化时
;P1.7引脚上的LED闪烁发光
;激活看门狗后,如果不喂狗,则复位(P1.1引脚上的LED闪一下)
;*****************************************************
ORG 0000
LJMP MAIN
ORG 000BH ;定时器0的中断向量地址
AJMP TIME0 ;跳转到真正的定时器程
ORG 30H
MAIN: SETB P1.1
LCALL DELAY
CLR P1.1
LCALL DELAY
SETB P1.1
LCALL DELAY
MOV TMOD,#00000001B ;定时/计数器0工作于方式1
MOV TH0,#0EAH
MOV TL0,#60H ;即60000
SETB EA ;开总中断允
SETB ET0 ;开定时/计数器0允许
SETB TR0 ;定时/计数器0开始运
MOV 0A6H,#01EH
MOV 0A6H,#0E1H ;在程序初始化中激活看门狗。
LOOP: SETB P1.7
LCALL DELAY
CLR P1.7
LCALL DELAY
LJMP LOOP
;定时器0的中断处理程序
TIME0: PUSH ACC
PUSH PSW ;将PSW和ACC推入堆栈保护
MOV 0A6H,#01EH
MOV 0A6H,#0E1H ;喂狗指令,可以将这两句注释后看不喂狗的情形
MOV TH0,#0EAH
MOV TL0,#60H ;重置定时常数
POP PSW
POP ACC
RETI;延时子程序
DELAY: MOV R7,#250
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END
;在16383个机器周期内必须至少喂狗一次。当晶振为12M时每16个毫秒需喂狗一次。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -