📄 zly.asm
字号:
INC R0
MOV @R0, A
CALL DISPLAY
WAITNOKEY: CALL KEY_SCAN
CJNE A, #0C0H, WAITNOKEY
; JMP WAITNOKEY
JMP DESPKEYEND
CHECKKEY2: CJNE A, #80H, DESPKEYEND
MOV R0, #LED_BF
MOV A, #4FH
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
CALL DISPLAY
CLR BEEP
CLR BEEPREG
DESPKEYEND: RET
SAVESET: MOV A, DSPREGADD
CALL RE2PROM
MOV R0, A
MOV A, #7FH
MOV R1, DSPREGBIT
SE_RO: RL A
DJNZ R1, SE_RO
ANL A, R0
MOV B, A
MOV A, DSPREGADD
CALL WE2PROM
RET
RESSETTING: MOV R7, #10H
MOV B, #0FFH
MOV R6, #30H
RO_SAVE: MOV A, R6
CALL WE2PROM
INC R6
MOV B, #0FFH
DJNZ R7, RO_SAVE
RET
RE2PROM: MOV DPL, A
CLR A
MOV DPH, A
MOV A, #08H
ORL 96H, A
MOVX A, @DPTR
MOV B, A
MOV A, #0F7H
ANL 96H, A
MOV A, B
RET
WE2PROM: MOV R0, A
MOV DPL, A
CLR A
MOV DPH, A
MOV R1, B
MOV A, #18H
ORL 96H, A
MOV A, B
MOVX @DPTR, A
WAITWRE: MOV A, 96H
JNB ACC.1, WAITWRE
MOV A, #0E7H
ANL 96H, A
MOV A, R0
CALL RE2PROM
MOV B, R1
SUBB A, B
JZ WRITEEND
MOV A, R0
MOV B, R1
JMP WE2PROM
WRITEEND: MOV A, R0
RET
DELAY8: MOV R5, #14H
DELAY0: MOV R6, #64H
DELAY1: DJNZ R6, DELAY1
DJNZ R5, DELAY0
RET
LOW8_SCAN: SETB LOW_8
MOV A, 22H
MOV P2, A
CLR LOW_8
MOV A, P0
CALL DELAY8
ANL A, P0
CALL DELAY8
ANL A, P0
MOV R0, 57H
MOV @R0, A
INC 57H
DEC 2CH
MOV A, 2CH
JZ LOW8END
MOV A, 22H
RR A
MOV 22H, A
JMP LOW8RET
LOW8END: CLR 2EH.6
SETB 2EH.7
MOV 2CH, #08H
MOV 22H, #7FH
MOV 57H, #48H
SETB LOW_8
CALL DELAY8
MOV P2, #0FFH
CLR LOW_8
LOW8RET: RET
HIGH8_SCAN: SETB HIGH_8
MOV A, 22H
MOV P2, A
CLR HIGH_8
MOV A, P0
CALL DELAY8
ANL A, P0
CALL DELAY8
ANL A, P0
MOV R0, 57H
MOV @R0, A
INC 57H
DEC 2CH
MOV A, 2CH
JZ HIGH8END
MOV A, 22H
RR A
MOV 22H, A
JMP HIGH8RET
HIGH8END: CLR 2EH.7
SETB 2EH.6
MOV 2CH, #08H
MOV 22H, #7FH
MOV 57H, #40H
CLR 2EH.5
SETB HIGH_8
CALL DELAY8
MOV P2, #0FFH
CLR HIGH_8
HIGH8RET: RET
SAVESCAN: MOV R7, #10H
MOV R0, #30H
MOV R1, #40H
SAVETEMP: MOV A, R0
CALL RE2PROM
MOV B, A
MOV A, @R1
ANL A, B
MOV @R0, A
INC R0
INC R1
DJNZ R7, SAVETEMP
SETB 2EH.5
RET
ALARM: SETB ALARMREG
SETB CUALARMR
MOV DSPREGADD, SERREG
MOV DSPREGBIT, SERBIT
MOV A, CH_NUMBER
NOTEQU5: MOV B, #10
DIV AB
CALL BCDTODSP
MOV R1, A
MOV A, B
CALL BCDTODSP
MOV R0, #LED_BF
; INC R0
MOV @R0, A ; DIG0 DISPLAY
INC R0
MOV A, R1
MOV @R0, A ; DIG1 DISPLAY
INC R0
MOV @R0, #01H ;DIG2 DISPLAY "-"
INC R0
MOV A, GR_NUMBER
CJNE A, #01H, GROUP2
MOV @R0, #77H ;DISPLAY GROUP A
JMP DSPALARM
GROUP2: CJNE A, #02H, GROUP3
MOV @R0, #4EH ;DISPLAY GROUP C
JMP DSPALARM
GROUP3: CJNE A, #03H, GROUP4
MOV @R0, #4FH ;DISPLAY GROUP E
JMP DSPALARM
GROUP4: MOV @R0, #7FH ;DISPLAY GROUP B FOR FULL END CHANGE ON 30,11
DSPALARM: CALL DISPLAY
JNB BEEPREG, NOTBEEP
SETB BEEP
JMP ALARMRET
NOTBEEP: CLR BEEP
ALARMRET: SETB RELAY
RET
CH_ALARM: JNB CHEND, CHANNELEND
CALL CHNOTEND
JNB CHALSER, CH_ALARM
JMP CHALARMEND
CHANNELEND: JNB GREND, GROUPEND
INC GR_NUMBER
MOV A, SUBGROUP
JZ GCLRGREND
DEC SUBGROUP
MOV A, SUBGROUP
JZ GCLRGREND
SETB GREND
JMP GETNEXTG
GCLRGREND: CLR GREND
GETNEXTG: SETB CHEND
MOV A, GR_NUMBER
CALL RE2PROM
MOV SUBCHAN, A
MOV CH_NUMBER, #01H
JMP CHALARMEND
GROUPEND: JNB CUALARMR, GCLRAL
CLR CUALARMR
JMP GRESGRP
GCLRAL: CLR ALARMREG
SETB BEEPREG
GRESGRP: MOV A, #000H
CALL RE2PROM
DEC A
MOV SUBGROUP, A
MOV GR_NUMBER, #01H
MOV A, #001H
CALL RE2PROM
MOV SUBCHAN, A
MOV CH_NUMBER, #01H
MOV SERREG, #30H
MOV SERBIT, #01H
SETB CHEND
SETB GREND
MOV TEMPSERREG, 30H
CHALARMEND: RET
CHNOTEND: MOV A, SERBIT
CJNE A, #09H, BITNOTEND
MOV SERBIT, #01H
INC SERREG
MOV R0, SERREG
MOV A, @R0
MOV TEMPSERREG, A
BITNOTEND: MOV A, TEMPSERREG
RRC A
MOV TEMPSERREG, A
JC THEREALARM
CLR CHALSER
JMP CH_FLAGS
THEREALARM: SETB CHALSER
CALL ALARM
CH_FLAGS: INC SERBIT
INC CH_NUMBER
DEC SUBCHAN
MOV A, SUBCHAN
JZ CLRCHEND
SETB CHEND
JMP CNOTENDEND
CLRCHEND: CLR CHEND
CNOTENDEND: RET
FORREAL: MOV R0, SERBIT ;READY FOR REALROTATE
DEC R0
MOV A, R0
JZ NOTROTATE ;IF SERBIT=01, NEED NOT ROTATE
MOV R1, SERREG ;REREAD THE REALTIME DATA
MOV A, @R1
REALRRC: RRC A
DJNZ R0, REALRRC
MOV TEMPSERREG, A
JMP FORREALRET
NOTROTATE: MOV R1, SERREG
MOV A, @R1
MOV TEMPSERREG, A
FORREALRET: RET
DSPTAB: DB 07EH, 030H, 06DH, 079H, 033H, 05BH, 05FH, 070H, 07FH
DB 07BH, 077H, 07FH, 04EH, 01H, 04FH, 047H, 01H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -