?? 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 + -