📄 sst58.asm
字号:
;===================================================================
; 这是调试SST89C58看门狗汇编语言程序,文件名为SST58.ASM
; 功能:调试SST89C58看门狗灵不灵。程序开始先执行看门狗初始化程序,
; 然后连叫三声,表示程序开始。若在一定时间内有喂狗信号则程序
; 正确运行;若在一定时间内未发出喂信号单片机将复位-一会儿就叫
; 三声。 这也可用示波器看,将示波器探头点到CPU的P1.0脚,若程序
; 正确运行, 示波器上只在开始时出几个脉冲;若程序不断复位则会出
; 现连续脉冲。
;=====================================================================
;新增特殊功能寄存器定义
WDTD DATA 86H
WDTC DATA 0C0H
WDRE BIT 0C3H
WDTS BIT 0C2H
WDT BIT 0C1H
SWDT BIT 0C0H
Time_Const EQU 125
SOUD BIT P1.0
ORG 0000H ;复位入口
LJMP Initial
ORG 0060H
Initial:
JB WDTS, WDT_Overflow_Routine; 看门狗溢出,出错处理
MOV WDTD, #Time_Const ; 装入初始值
MOV WDTC, #00001111B ; 起动和刷新看门狗定时器
SETB SOUD
LCALL DEL2
CLR SOUD
LCALL DEL2
SETB SOUD
LCALL DEL2
CLR SOUD
LCALL DEL2
SETB SOUD
LCALL DEL2
SETB WDRE ; 使能看门狗定时器复位
SETB SWDT ; 起动看门狗定时器
Main_Loop:
;LCALL Display_Loop
SETB WDT ; 喂狗
LJMP Main_Loop
WDT_Overflow_Routine: ; 看门狗溢出,出错处理程序
CLR SWDT ; 停止看门狗定时器
MOV WDTD, #Time_Const ; 装入初始值
MOV WDTC, #00001111B ; 起动和刷新看门狗定时器
LJMP Main_Loop
DEL2: MOV R2,#1 ; 延时程序
SJMP DEL1
Delay:MOV R2, #20
DEL1: MOV R1, #0
MOV R0, #0
DLP:
DJNZ R0, DLP
DJNZ R1, DLP
DJNZ R2, DLP
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -