📄 zly.asm
字号:
DIN BIT P1.2
CLK BIT P1.4
LOAD BIT P1.3
M_CANCEL BIT P1.6
M_SET BIT P1.7
BEEPREG BIT 2FH.7
CHEND BIT 2FH.6
GREND BIT 2FH.5
ALARMREG BIT 2FH.4
CUALARMR BIT 2FH.3
ALARMSER BIT 2FH.2
CHALSER BIT 2FH.1
BEEP BIT P1.5
LOW_8 BIT P1.0
HIGH_8 BIT P1.1
EXWDI BIT P3.2
RELAY BIT P3.3
LDATA EQU 20H
HDATA EQU 21H
INSCAN_RO EQU 22H
SERREG EQU 25H
SERBIT EQU 26H
GR_NUMBER EQU 23H
CH_NUMBER EQU 24H
DSPREGADD EQU 27H
DSPREGBIT EQU 28H
SUBGROUP EQU 29H
SUBCHAN EQU 2AH
TEMPSERREG EQU 2BH
LED_BF EQU 50H
ORG 0000H
JMP MAIN
ORG 00B0H
JMP INTT0
ORG 0100H
MAIN: CALL DELAY8
MOV SP, #60H
MOV 58H, #80H
CLR BEEP
CLR RELAY
CLR LOW_8
CLR HIGH_8
MOV 57H, #40H
MOV 2CH, #08H
SETB 2EH.6
CLR 2EH.7
SETB 2EH.5
;/////////////////////添加组数和路数/////////////////////////////////////
;/////////////////////路数不能为零!/////////////////////////////////////
;////////////////////////////////////////////////////////////////////////
MOV A, #000H
MOV B, #02H ;组数
CALL WE2PROM
MOV A, #001H
MOV B, #30; 第一组路数
CALL WE2PROM
MOV A, #002H
MOV B, #01; 第二组路数
CALL WE2PROM
MOV A, #003H
MOV B, #01; 第三组路数
CALL WE2PROM
MOV A, #004H
MOV B, #01; 第四组路数
CALL WE2PROM
;/////////////////////添加组数和路数/////////////////////////////////////
;////////////////////////////////////////////////////////////////////////
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
CLR ALARMREG
CLR CUALARMR
CLR ALARMSER
CLR CHALSER
SETB BEEPREG
SETB CHEND
SETB GREND
SETB EXWDI
MOV SERREG, #30H
MOV SERBIT, #01H
MOV 30H, #000H
MOV 31H, #000H
MOV 32H, #000H
MOV 33H, #000H
MOV 34H, #000H
MOV 35H, #000H
MOV 36H, #000H
MOV 37H, #000H
MOV 38H, #000H
MOV 39H, #000H
MOV 3AH, #000H
MOV 3BH, #000H
MOV 3DH, #000H
MOV 3EH, #000H
MOV 3FH, #000H
MOV R0, #30H
MOV A, @R0
MOV TEMPSERREG, A
MOV TMOD, #01H
MOV TL0, #17H
MOV TH0, #0FFH
SETB TR0
SETB ET0
SETB EA
MOV R0, #LED_BF
MOV @R0, #46H
INC R0
MOV @R0, #5BH
INC R0
MOV @R0, #4FH
INC R0
MOV @R0, #46H
CALL DISPLAY
SJMP $
INTT0: PUSH PSW
PUSH ACC
PUSH B
PUSH DPL
PUSH DPH
MOV A, #18H
ORL A, PSW
MOV PSW, A
CLR TR0
CPL EXWDI
JNB 2EH.5, GETCHECKSCAN
JNB 2EH.6, GETHSCAN8
CALL LOW8_SCAN
JMP SCANINPUTEND
GETHSCAN8: CALL HIGH8_SCAN
JMP SCANINPUTEND
GETCHECKSCAN: CALL SAVESCAN
SCANINPUTEND: JB ALARMREG, NOCHANGE
SETB BEEPREG
CLR BEEP
CLR RELAY
MOV A, #01H
MOV R0, #LED_BF
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
CALL DISPLAY
CALL KEY_SCAN
CJNE A, #00H, RNRESET
CALL RESSETTING
MOV R0, #LED_BF
MOV A, #7FH
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
CALL DISPLAY
JMP RKEYPRESS
RNRESET: CJNE A, #0C0H, RKEYPRESS
CALL FORREAL
CALL CH_ALARM
JNB ALARMREG, NOCHANGE
MOV 58H, #80H
NOCHANGE: JB BEEPREG, BNOCHANGE
CLR BEEP
BNOCHANGE: CALL KEY_SCAN
CALL DEPOSEKEY
RKEYPRESS: DEC 58H
MOV A, 58H
JZ COMPLETE3S
JMP INTRET
COMPLETE3S: MOV 58H, #80H
CALL FORREAL
CALL CH_ALARM
INTRET: MOV TMOD, #01H
MOV TL0, #9BH
MOV TH0, #0FFH
SETB TR0
SETB ET0
SETB EA
POP DPH
POP DPL
POP B
POP ACC
POP PSW
RETI
DISPLAY: CALL PREW7219
CALL OUTLED
RET
PREW7219: MOV A, #0BH
MOV B, #03H
CALL W_7219
MOV A, #09H
MOV B, #00H
CALL W_7219
MOV A, #0AH
MOV B, #09H
CALL W_7219
MOV A, #0CH
MOV B, #01H
CALL W_7219
RET
OUTLED: MOV R0, #LED_BF
MOV R2, #01H
MOV R1, #04H
C_DISPLAY: MOV A, @R0
MOV B, A
MOV A, R2
CALL W_7219
INC R0
INC R2
DJNZ R1, C_DISPLAY
RET
W_7219: CLR LOAD
CALL SD_7219
MOV A, B
CALL SD_7219
SETB LOAD
RET
SD_7219: MOV R3, #08H
C_SD: NOP
NOP
CLR CLK
RLC A
MOV DIN, C
NOP
NOP
SETB CLK
DJNZ R3, C_SD
RET
BCDTODSP: MOV DPTR, #DSPTAB
MOVC A, @A+DPTR
RET
KEY_SCAN: SETB M_CANCEL
SETB M_SET
MOV R0, #0AH
MOV A, P1
MOV B, #0C0H
ANL A, B
MOV R1, A
RKEYSCAN: MOV A, P1
ANL A, B
ANL A, R1
DJNZ R0, RKEYSCAN
RET
DEPOSEKEY: CJNE A, #40H, CHECKKEY1
JNB ALARMREG, DESPKEYEND
CALL SAVESET
CLR ALARMREG
MOV R0, #LED_BF
MOV A, #01H
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
CALL DISPLAY
JMP DESPKEYEND
CHECKKEY1: CJNE A, #00H, CHECKKEY2
CALL RESSETTING
MOV R0, #LED_BF
MOV A, #7FH
MOV @R0, A
INC R0
MOV @R0, A
INC R0
MOV @R0, A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -