📄
字号:
;##############################################################
;********************************
; 出错处理
;********************************
; 试验通过
;--------------------------------
ERR: CLR EA
LCALL SFR_FW ;寄存器复位
LCALL SSTSFR ;SST部分特殊功能寄存器复位
MOV DPTR,#ERR1
PUSH DPL
PUSH DPH
RETI ;清除低级中断标志
include "软件陷阱.asm"
ERR1: CLR A
MOV SP,#7
PUSH ACC ;复位地址
PUSH ACC
RETI ;清除高级中断标志
include "软件陷阱.asm"
;********************************
; 52特殊功能寄存器复位
;********************************
SFR_FW: MOV A,#0FFH
MOV P0,A
MOV P1,A
MOV P2,A
MOV P3,A
;-----------
CLR A
MOV B,A
MOV PSW,A
;SP 暂不能赋值
MOV DPL,A
MOV DPH,A
ANL IP,#10000000B
MOV IE,A
MOV TMOD,A
ANL T2MOD,#11111100B
MOV TCON,A
MOV T2CON,A
MOV TH0,A
MOV TL0,A
MOV TH1,A
MOV TL1,A
MOV TH2,A
MOV TL2,A
MOV RCAP2H,A
MOV RCAP2L,A
MOV SCON,A
;SBUF 暂不能赋值
MOV PCON ,#00010000B
RET
include "软件陷阱.asm"
;********************************
; SST部分特殊功能寄存器复位
;********************************
SSTSFR: CLR EA
MOV WDTD,#00H ;看门狗数据/重载控制寄存器
ANL WDTC,#11100100B ;看门狗定时器控制寄存器
SETB WDTS ;注意!此标志写1为清除
ANL SFCF,#10111111B ;配置寄存器(IAPEN,SWR,BSEL)
MOV SFCM,#00H ;命令寄存器(FIE,FCM6-0)
MOV SFAL,#00H ;地址寄存器L
MOV SFAH,#00H ;地址寄存器H
MOV SFDT,#00H ;数据寄存器
ANL SFST,#11111011B ;状态寄存器
ANL AUXR1,#11110010B;辅助寄存器1,双DPTR(...,DPTR)
ANL AUXR,#11111100B ;辅助寄存器,内部RAM768(..,RAM,ALE)
MOV IPH,#00H ;中断高优先级寄存器
RET
include "软件陷阱.asm"
;##############################################################
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -