⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at89s52_wdt.asm

📁 用汇编写的AT89S52看门狗程序
💻 ASM
字号:
;*****************************************************
;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 + -