📄 safe control.asm
字号:
ACALL SWHL
INC R1
INC DPTR
MOVX A,@DPTR
ACALL CHANGNUM
ACALL SWHL
INC R1
INC DPTR
MOVX A,@DPTR
ACALL CHANGNUM
ACALL SWHL
INC R1
INC DPTR
MOVX A,@DPTR
ACALL CHANGNUM
ACALL SWHL
RET
;******* THIS SUB IS FOR ONE ADDR ASCII TO TOW ASCII********
;******* LOW ADDR IS STORE IN R1*********************
SWHL: NOP
INC R1
MOV @R1,A
DEC R1
ANL A,#0FH
MOV @R1,A
INC R1
MOV A,@R1
SWAP A
ANL A,#0FH
MOV @R1,A
RET
;******************显示数据转换******************
CHANGNUM:
MOV @R1,A
MOV B,#10
DIV AB
MOV B,#6
MUL AB
ADD A,@R1
RET
;**************** WRITE DATA INT ************
W818: NOP
MOV DPTR,#800AH
MOV A,#70H
MOVX @DPTR,A
INC DPTR
MOV A,#82H
MOVX @DPTR,A
MOV DPL,#00H
CLR A
MOVX @DPTR,A
MOV DPL,#02H
MOV A,#00H
MOVX @DPTR,A
MOV DPL,#04H
MOV A,#11H
MOVX @DPTR,A
MOV DPL,#06H
MOV A,#01H
MOVX @DPTR,A
MOV DPL,#07H
MOV A,#10H
MOVX @DPTR,A
INC DPTR
MOV A,#12H
MOVX @DPTR,A
INC DPTR
MOV A,#02H
MOVX @DPTR,A
INC DPTR
MOV A,#20H ;32.768K
MOVX @DPTR,A
INC DPTR
MOV A,#02H
MOVX @DPTR,A
ACALL CLK691
MOV DPTR,#8010H;将安全数据存在时钟上
MOV A,#9
MOVX @DPTR,A
INC DPTR ;11H
MOV A,#8
MOVX @DPTR,A
MOV A,#7
MOVX @DPTR,A
INC DPTR ;13H
MOV A,#6
MOVX @DPTR,A
INC DPTR ;14H
MOV A,#5
MOVX @DPTR,A
INC DPTR ;15H
MOV A,#4
MOVX @DPTR,A
INC DPTR ;16H
MOV A,#3
MOVX @DPTR,A
INC DPTR ;17H
MOV A,#2
MOVX @DPTR,A
INC DPTR ;18H
MOV A,#1
MOVX @DPTR,A
INC DPTR ;19H
MOV A,#0
MOVX @DPTR,A
RET
;******************************************
;** THIS IS INT1 T=0.1S **
;******************************************
INT1S: NOP
ACALL CLK691
PUSH ACC
PUSH PSW
PUSH DPH
PUSH DPL
MOV TH1,#4CH
MOV TL1,#00H
SETB TR1
MOV R1,#5FH
CJNE @R1,#7,TIAN0
MOV 52H,#00H
ACALL R818
ACALL DISPT
ACALL RRAM
LCALL DISPA
TIAN0: CJNE @R1,#18,TIAN1
MOV 52H,#0FFH
ACALL R818
ACALL DISPT
ACALL RRAM
LCALL DISPA
TIAN1: CJNE @R1,#21,TIAN2
MOV @R1,#00H
TIAN2: MOV R1,#5FH
MOV A,@R1
ADD A,#01H
MOV @R1,A
ESCD0: LCALL TSNUM
NOP
POP DPL
POP DPH
POP PSW
POP ACC
SETB TR1
RETI
;*****************根据日期更改设置************************
TSNUM:
NOP
ACALL CLK691
MOV DPTR,#800AH
WAITER: MOVX A,@DPTR
JB ACC.7,WAITER
MOV DPTR,#8007H
MOVX A,@DPTR
MOV 4EH,A
MOV DPTR,#801AH
MOVX A,@DPTR
CJNE A,4EH,TSNEXT
AJMP ESO
TSNEXT:
MOV DPTR,#8000H
MOVX A,@DPTR
MOV 4EH,A
MOV DPTR,#801AH
MOVX A,@DPTR
CJNE A,4EH,TSNEXTT
AJMP ESO
TSNEXTT: MOV DPTR,#8010H
ACALL INCNUM
MOV DPTR,#8012H
ACALL INCNUM
MOV DPTR,#8016H
ACALL INCNUM
MOV DPTR,#8018H
ACALL DECNUM
MOV DPTR,#801AH
MOV A,4EH
MOVX @DPTR,A
ESO: RET
INCNUM: ;显示加一
MOVX A,@DPTR
CJNE A,#99,ESOTTT
MOV A,#0
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
CJNE A,#99,ESOTTTT
MOV A,#0
MOVX @DPTR,A
AJMP ESOTT
ESOTTTT: INC A
MOVX @DPTR,A
AJMP ESOTT
ESOTTT: INC A
MOVX @DPTR,A
ESOTT: RET
DECNUM: NOP ;显示减一
MOVX A,@DPTR
JZ ESOT
DEC A
MOVX @DPTR,A
AJMP ESOO
ESOT: MOV A,#99
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
JZ ESOTTU
DEC A
MOVX @DPTR,A
AJMP ESOO
ESOTTU: MOV A,#99
MOVX @DPTR,A
ESOO: RET
S_PORT: PUSH DPH
PUSH DPL
PUSH ACC
PUSH B
PUSH PSW
SETB RS1 ;以免影响主程序中寄存器值
SETB RS0
JBC TI,SPERR
LCALL SPIN
CJNE A,#55H,SPERR ;前导码
LCALL SPIN
CJNE A,#0AAH,SPERR
LCALL SPIN
CJNE A,#0FFH,SPERR
LCALL SPIN
MOV FX_TEM,A ;缓存功能码
CJNE A,#0FAH,REVSD
LCALL SPIN
MOV 66H,A ;年
LCALL SPIN
MOV 65H,A ;月
LCALL SPIN
MOV 64H,A ;日
LCALL SPIN
MOV 63H,A ;星期
LCALL SPIN
MOV 62H,A ;时
LCALL SPIN
MOV 61H,A ;分
LCALL SPIN
MOV 60H,A ;秒
MOV DPTR,#8000H
MOV R0,#60H
MOV A,@R0
MOVX @DPTR,A ;秒
INC DPTR
INC DPTR
INC R0
MOV A,@R0
MOVX @DPTR,A ;分
INC DPTR
INC DPTR
INC R0
MOV A,@R0
MOVX @DPTR,A ;时
INC DPTR
INC DPTR
INC R0
MOV A,@R0
MOVX @DPTR,A ;星期
INC DPTR
INC R0
MOV A,@R0
MOVX @DPTR,A ;日
INC DPTR
INC R0
MOV A,@R0
MOVX @DPTR,A ;月
INC DPTR
INC R0
MOV A,@R0
MOVX @DPTR,A ;年
SPERR: LJMP EXITSP
REVSD: MOV A,FX_TEM
CJNE A,#0FBH,REVHS ; 离上次损工事故的天数
LCALL SPIN
MOV DPTR,#8011H
MOVX @DPTR,A ;高位
LCALL SPIN
MOV DPTR,#8010H
MOVX @DPTR,A ;低位
LJMP EXITSP
REVHS: MOV A,FX_TEM
CJNE A,#0FCH,REVRET ; 离上次有记录的事故/伤病天数
LCALL SPIN
MOV DPTR,#8013H
MOVX @DPTR,A ;高位
LCALL SPIN
MOV DPTR,#8012H
MOVX @DPTR,A ;低位
LJMP EXITSP
REVRET: MOV A,FX_TEM
CJNE A,#0FDH,REVREX ; 今年离岗事故次数
LCALL SPIN
MOV DPTR,#8015H
MOVX @DPTR,A ;高位
LCALL SPIN
MOV DPTR,#8014H
MOVX @DPTR,A ;低位
LJMP EXITSP
REVREX: MOV A,FX_TEM
CJNE A,#0FEH,REVREA ; 离上次离岗事故的天数
LCALL SPIN
MOV DPTR,#8017H
MOVX @DPTR,A ;高位
LCALL SPIN
MOV DPTR,#8016H
MOVX @DPTR,A ;低位
LJMP EXITSP
REVREA: MOV A,FX_TEM
CJNE A,#0FFH,EXITSP ; 离下次颁奖日天数
LCALL SPIN
MOV DPTR,#8019H
MOVX @DPTR,A ;高位
LCALL SPIN
MOV DPTR,#8018H
MOVX @DPTR,A ;低位
EXITSP: NOP
POP PSW
POP B
POP ACC
POP DPL
POP DPH
RETI
SPIN: MOV R6,#80H
SPIN2: MOV R7,#0FFH
SPIN1: JB RI,SPIN0 ;WAITING RECEIVER
DJNZ R7,SPIN1
DJNZ R6,SPIN2
RET
SPIN0: MOV A,SBUF ;无校验
CLR RI
RET
;*****************输出字型码(6B595)***********************************************
TABDIP: DB 0FCH,60H,0DAH ;0,1,2
DB 0F2H,66H,0B6H ;3,4,5
DB 0BEH,0E0H,0FEH ;6,7,8
DB 0F6H,00H ;9
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -