📄 sx1302.asm
字号:
JNB K1,K021A
JNB K2,K021B
JNB K3,K003
JMP K020
K021A:
MOV A,41H
ADD A,#01H
DA A
MOV 41H,A
XRL A,#60H
JNZ K022A
MOV 41H,#00H
K022A: MOV R1,#82H
MOV R0,41H
LCALL WRITE
CALL TIME_DELAY
JMP K020
;---------------------------------------------------
K021B:
MOV A,41H
XRL A,#00H
JZ K022B
SETB C
CLR A
ADDC A,#99H
SUBB A,#01H
ADD A,41H
DA A
MOV 41H,A
XRL A,#00H
JNZ K022C
K022B: MOV 41H,#59H
K022C: MOV R1,#82H
MOV R0,41H
LCALL WRITE
CALL TIME_DELAY
JMP K020
;---------------------------------------------------
K003: CALL DATE_DELAY
JNB K3,K003
K030: CALL CHULI
JNB 0AH,KR01
MOV 60H,7FH
MOV 61H,7FH
JMP KR02
KR01: MOV 60H,76H
MOV 61H,77H
KR02: MOV R0,#DATE_DATA
CALL DISP
MOV R0,#DATE_DATA
CALL TIME_DISPLAY
JNB K1,K031A
JNB K2,K031B
JNB K3,K004
JMP K030
K031A:
MOV A,43H
ADD A,#01H
DA A
MOV 43H,A
XRL A,#32H
JNZ K032A
MOV 43H,#00H
K032A: MOV R1,#86H
MOV R0,43H
LCALL WRITE
CALL DATE_DELAY
JMP K030
K031B:
MOV A,43H
XRL A,#00H
JZ K032B
SETB C
CLR A
ADDC A,#99H
SUBB A,#01H
ADD A,43H
DA A
MOV 43H,A
XRL A,#00H
JNZ K032C
K032B: MOV 43H,#31H
K032C: MOV R1,#86H
MOV R0,43H
LCALL WRITE
CALL DATE_DELAY
JMP K030
;------------------------------------------------
K004: CALL DATE_DELAY
JNB K3,K004
K040: CALL CHULI
JNB 0AH,KC01
MOV 62H,7FH
MOV 63H,7FH
JMP KC02
KC01: MOV 62H,78H
MOV 63H,79H
KC02: MOV R0,#DATE_DATA
CALL DISP
MOV R0,#DATE_DATA
CALL TIME_DISPLAY
JNB K1,K041A
JNB K2,K041B
JNB K3,K005
JMP K040
K041A:
MOV A,44H
ADD A,#01H
DA A
MOV 44H,A
XRL A,#13H
JNZ K042A
MOV 44H,#00H
K042A: MOV R1,#88H
MOV R0,44H
LCALL WRITE
CALL DATE_DELAY
JMP K040
K041B:
MOV A,44H
XRL A,#00H
JZ K042B
SETB C
CLR A
ADDC A,#99H
SUBB A,#01H
ADD A,44H
DA A
MOV 44H,A
XRL A,#00H
JNZ K042C
K042B: MOV 44H,#12H
K042C: MOV R1,#88H
MOV R0,44H
LCALL WRITE
CALL DATE_DELAY
JMP K040
;-----------------------------------------------
K005: CALL DATE_DELAY
JNB K3,K005
K050: CALL CHULI
JNB 0AH,KY01
MOV 64H,7FH
MOV 65H,7FH
JMP KY02
KY01: MOV 64H,7AH
MOV 65H,7BH
KY02: MOV R0,#DATE_DATA
CALL DISP
MOV R0,#DATE_DATA
CALL TIME_DISPLAY
JNB K1,K051A
JNB K2,K051B
JNB K3,K008
JMP K050
K051A:
MOV A,45H
ADD A,#01H
DA A
MOV 45H,A
XRL A,#9AH
JNZ K052A
MOV 45H,#00H
K052A: MOV R1,#8CH
MOV R0,45H
LCALL WRITE
CALL DATE_DELAY
JMP K050
K051B:
MOV A,45H
XRL A,#00H
JZ K052B
SETB C
CLR A
ADDC A,#99H
SUBB A,#01H
ADD A,45H
DA A
MOV 45H,A
XRL A,#00H
JNZ K052C
K052B: MOV 45H,#99H
K052C: MOV R1,#8CH
MOV R0,45H
LCALL WRITE
CALL DATE_DELAY
JMP K050
;-------------------------------------------------
K008: JNB K3,K008
MOV R1,#80H
MOV R0,#00H
LCALL WRITE
MOV R1,#8EH
MOV R0,#80H
LCALL WRITE
CALL DATE_DELAY
CLR 0AH
CLR TR0
CALL BEEP_BL
RET
DSSET:
SETB TR0
DS01: LCALL DS_DELAY
JNB K4,$
DS010: CALL DS_CHULI
JNB 0AH,DS01_1
MOV 58H,7FH
MOV 59H,7FH
JMP DS01_2
DS01_1: MOV 58H,70H
MOV 59H,71H
DS01_2: MOV R0,#58H
LCALL DS_SP
MOV R0,#58H
LCALL DS_DISPLAY
JNB K1,DS01A
JNB K2,DS01B
JNB K3,DS02
JMP DS010
DS01A:
MOV A,48H
ADD A,#01H
DA A
MOV 48H,A
XRL A,#60H
JNZ DS011
MOV 48H,#00H
DS011: LCALL DS_DELAY
JMP DS010
DS01B: MOV A,48H
XRL A,#00H
JZ DS012
SETB C
CLR A
ADDC A,#99H
SUBB A,#01H
ADD A,48H
DA A
MOV 48H,A
XRL A,#00H
JNZ DS013
DS012: MOV 48H,#59H
DS013: CALL DS_DELAY
JMP DS010
;----------------------------------------------
DS02: LCALL DS_DELAY
JNB K3,$
DS020:
CALL DS_CHULI
JNB 0AH,DS02_1
MOV 5AH,7FH
MOV 5BH,7FH
JMP DS02_2
DS02_1: MOV 5AH,72H
MOV 5BH,73H
DS02_2: MOV R0,#58H
LCALL DS_SP
MOV R0,#58H
LCALL DS_DISPLAY
JNB K1,DS02A
JNB K2,DS02B
JNB K3,DS03
JMP DS020
DS02A: MOV A,49H
ADD A,#01H
DA A
MOV 49H,A
XRL A,#24H
JNZ DS021
MOV 49H,#00H
DS021: LCALL DS_DELAY
JMP DS020
DS02B: MOV A,49H
XRL A,#00H
JZ DS022
SETB C
CLR A
ADDC A,#99H
SUBB A,#01H
ADD A,49H
DA A
MOV 49H,A
XRL A,#00H
JNZ DS023
DS022: MOV 49H,#23H
DS023: CALL DS_DELAY
JMP DS020
;-------------------------------------------
DS03: CALL DS_DELAY
JNB K3,$
DS030: CALL DS_CHULI
JNB 0AH,DS03_1
MOV 5CH,7FH
JMP DS03_2
DS03_1: MOV 5CH,74H
DS03_2: MOV R0,#58H
LCALL DS_SP
MOV R0,#58H
LCALL DS_DISPLAY
JNB K3,DS04
JNB K1,DS03A
JMP DS030
DS03A: CPL 20H.1
JNB 20H.1,DS031
MOV 4AH,#01H
AJMP DS032
DS031: MOV 4AH,#00H
DS032: LCALL DS_DELAY
JMP DS030
;--------------------------------------------
DS04: CLR TR0
CLR 0AH
CALL BEEP_BL
LCALL DS_DELAY
RET
DS_CHULI:
MOV A,48H
ANL A,#0FH
MOV 58H,A
MOV 70H,A
MOV A,48H
ANL A,#0F0H
SWAP A
MOV 59H,A
MOV 71H,A
MOV A,49H
ANL A,#0FH
MOV 5AH,A
MOV 72H,A
MOV A,49H
ANL A,#0F0H
SWAP A
MOV 5BH,A
MOV 73H,A
MOV A,4AH
ANL A,#01H
MOV 5CH,A
MOV 74H,A
RET
DS_SP: ;MOV R0,#58H
MOV R3,#05H
DS_SP1: MOV A,@R0
MOV DPTR,#TAB_NU
MOVC A,@A+DPTR
MOV @R0,A
INC R0
DJNZ R3,DS_SP1
RET
DS_DISPLAY:
;MOV R0,#58H
MOV R1,#07FH
MOV R2,#07H
DSPLAY: MOV P0,@R0
MOV A,R1
MOV P2,A
JB ACC.5,DSLP1
MOV P0,#0BFH
JMP DSLP3
DSLP1: JB ACC.2,DSLP2
MOV P0,#0BFH
JMP DSLP3
DSLP2: INC R0
DSLP3: MOV A,R1
RR A
MOV R1,A
LCALL DELAY
DJNZ R2,DSPLAY
RET
COMP: JNB 20H.1,COMP1
MOV R0,#TIME_DATA
LCALL TIME_DISPLAY
MOV A,42H
CJNE A,49H,COMP1
MOV A,41H
CJNE A,48H,COMP1
JB 20H.0,COMP2
;LCALL BEEP_BL
CLR RELAY
JMP COMP3
COMP1: CLR 20H.0
COMP2: SETB RELAY
COMP3: RET
DS_DELAY:
MOV R6,#0AH
DS_KK:
LCALL DS_CHULI
MOV R0,#DS_DATA
LCALL DS_SP
MOV R0,#DS_DATA
LCALL DS_DISPLAY
DJNZ R6,DS_KK
RET
TIME_DELAY:
MOV R6,#0AH
TIME_KK:
LCALL CHULI
MOV R0,#TIME_DATA
LCALL DISP
MOV R0,#TIME_DATA
CALL TIME_DISPLAY
DJNZ R6,TIME_KK
RET
DATE_DELAY:
MOV R6,#0AH
DATE_KK:
LCALL CHULI
MOV R0,#DATE_DATA
LCALL DISP
MOV R0,#DATE_DATA
CALL TIME_DISPLAY
DJNZ R6,DATE_KK
RET
BEEP_BL:
MOV R6,#100
BL2: CALL DEX1
CPL BEEP
DJNZ R6,BL2
MOV R5,#10
CALL DELAY_BL
RET
DEX1: MOV R7,#180
DE2: NOP
DJNZ R7,DE2
RET
DELAY_BL:
MOV R6,#50
DL1: MOV R7,#100
DJNZ R7,$
DJNZ R6,DL1
DJNZ R5,DELAY_BL
RET
TAB_NU: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0-9
DB 0FFH
DB 88H,83H,0C6H,0A1H,86H,8EH ;A-F
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -