📄 新建 文本文档.txt
字号:
LED3CLK BIT P2.3
LED4IO BIT P2.2
RST BIT P2.1
SECOND EQU 60H
R_SET EQU P0.0
L_SET EQU P0.1
L_UP EQU P0.2
ORG 0000H
LJMP START
ORG 000BH ;定时读取1302的内容
LJMP INTT0
ORG 001BH ;闪动调时
LJMP INTT1
ORG 0030H
START: MOV 20H,#0FFH
MOV TMOD,#11H
MOV TH0,#0B1H
MOV TL0,#0E0H
MOV TH1,#0B1H
MOV TL1,#0E0H
MOV R6,#0
MOV R2,#3
LCALL R_1302
SETB ET0
SETB TR0
SETB EA
START1: LCALL DISPLAY
LCALL EXCHANG
JNB R_SET,SETHH
JNB L_SET,SETMM
SJMP START1
;-----------------------SET---------------------------------------
SETHH: LCALL DL5MS
JB R_SET,START1
LCALL SET1302
AJMP START1
SETMM: LCALL DL5MS
JB L_SET,START1
MOV R2,#08H
SETB ET1
SETB TR1
CLR TR0
CLR ET0
SETB 00H
SET1: JNB L_SET,SET2
INC R6
CJNE R6,#1H,XX1
CLR 02H
SET3: JB L_UP,SET4
APPLE: LCALL DISPLAY
JNB L_UP,APPLE
MOV A,61H
ADD A,#1H
DA A
MOV 61H,A
CJNE A,#60H,XXX1
XXX1: JC L_UP_END
MOV 61H,#00H
L_UP_END: MOV R1,#82H
MOV R0,61H
LCALL STONE
LJMP SET3
SET2: LCALL DISPLAY
AJMP SET1
SET4: JNB L_SET,SET1
LCALL DISPLAY
AJMP SET3
XX1: CJNE R6,#2H,XX2
SETB 02H
CLR 03H
SET5: JB L_UP,SET6
APPLE1: LCALL DISPLAY
JNB L_UP,APPLE1
MOV A,62H
ADD A,#1H
DA A
MOV 62H,A
CJNE A,#24H,XXX2
XXX2: JC L_UP_END1
MOV 62H,#0H
L_UP_END1: MOV R1,#84H
MOV R0,62H
LCALL STONE
LJMP SET5
SET6: JNB L_SET,SET1
LCALL DISPLAY
AJMP SET5
XX2: CLR ET1
CLR TR1
SETB ET0
SETB TR0
MOV R6,#0
LJMP START1
;-------------------------INTT0-----------------------------------
INTT0: PUSH ACC ;累加器入栈保护
PUSH PSW ;状态字入栈保护
PUSH DPH
PUSH DPL
MOV TH0,#0B1H
MOV TL0,#0E0H
DJNZ R2,OUTT0
MOV R2,#25
CPL 00H
LCALL R_1302
OUTT0: POP DPL
POP DPH
POP PSW
POP ACC
RETI
;------------------------INTT1-------------------------------------
INTT1: PUSH DPH
PUSH DPL
PUSH ACC
PUSH PSW
MOV TL1,#0B0H
MOV TH1,#3CH
DJNZ R2,INTT1OUT
MOV R2,#08H
CPL 01H
JB 01H,FLASH1
LCALL EXCHANG
AJMP INTT1OUT
FLASH1: JB 02H,FLASH2
MOV 72H,#0FFH
MOV 73H,#0FFH
AJMP INTT1OUT
FLASH2: JB 03H,FLASH3
MOV 70H,#0FFH
MOV 71H,#0FFH
AJMP INTT1OUT
FLASH3:
INTT1OUT: POP PSW
POP ACC
POP DPL
POP DPH
RETI
;------------------------DISPLAY------------------------------------
DISPLAY: MOV DPTR,#TAB1
MOV A,70H
MOVC A,@A+DPTR
MOV 2AH,A
LCALL WRITE595
LCALL WRITE5950
CLR P1.4
LCALL DL1MS
SETB P1.4
MOV A,71H
MOVC A,@A+DPTR
MOV C,00H
MOV ACC.0,C
MOV 2AH,A
LCALL WRITE595
LCALL WRITE5950
CLR P1.5
LCALL DL1MS
SETB P1.5
MOV DPTR,#TAB2
MOV A,72H
MOVC A,@A+DPTR
MOV C,00H
MOV ACC.7,C
MOV 2AH,A
LCALL WRITE595
LCALL WRITE5950
CLR P1.6
LCALL DL1MS
SETB P1.6
MOV DPTR,#TAB1
MOV A,73H
MOVC A,@A+DPTR
MOV 2AH,A
LCALL WRITE595
LCALL WRITE5950
CLR P1.7
LCALL DL1MS
SETB P1.7
RET
;---------------------WRITE5950--------------------------
WRITE5950: LCALL WRITE595
CLR P1.1
NOP
SETB P1.1
RET
WRITE595: MOV R5,#08H
MOV A,2AH
LOOP: RRC A
MOV P1.0,C
CLR P1.2
NOP
SETB P1.2
DJNZ R5,LOOP
RET
;--------------------EXCHANG-----------------------
EXCHANG: MOV A,62H
MOV B,#10H
DIV AB
CJNE A,#1H,OPP1
OPP1: JC APPLE2
MOV 70H,A
MOV 71H,B
AJMP OPP2
APPLE2: MOV 70H,#0FFH
MOV 71H,B
OPP2: MOV A,61H
MOV B,#10H
DIV AB
MOV 72H,A
MOV 73H,B
RET
;-------------------R_1302----------------------
R_1302: MOV R0,#SECOND ;读取1302时间
MOV R7,#7
MOV R1,#81H
R_1302A: CLR RST
CLR LED3CLK
SETB RST
MOV A,R1
LCALL R_BIT
LCALL W_BIT
MOV @R0,A
INC R0
INC R1
INC R1
SETB LED3CLK
CLR RST
DJNZ R7,R_1302A
RET
;------------------R_BIT------------------
R_BIT: MOV R4,#8
R_BIT1: RRC A
MOV LED4IO,C
SETB LED3CLK
CLR LED3CLK
DJNZ R4,R_BIT1
RET
;-------------------W_BIT-----------------------
W_BIT: MOV R4,#8
W_BIT1: MOV C,LED4IO
RRC A
SETB LED3CLK
CLR LED3CLK
DJNZ R4,W_BIT1
RET
;-------------------SET_1302-------------------------
SET1302: CLR RST ;2006年1月11日22:58:00
CLR LED3CLK
MOV SECOND,#0H
MOV 61H,#58H
MOV 62H,#23H
MOV 63H,#11H
MOV 64H,#1H
MOV 65H,#7H
MOV 66H,#06H
SETB RST
MOV A,#8EH
LCALL R_BIT
MOV A,#00H
LCALL R_BIT
SETB LED3CLK
CLR RST
MOV R0,#SECOND
MOV R7,#7
MOV R1,#80H
SET1302A: CLR RST
CLR LED3CLK
SETB RST
MOV A,R1
LCALL R_BIT
MOV A,@R0
LCALL R_BIT
INC R0
INC R1
INC R1
SETB LED3CLK
CLR RST
DJNZ R7,SET1302A
CLR RST
CLR LED3CLK
SETB LED3CLK
NOP
CLR RST
NOP
CLR led3clk
SETB RST
MOV A,#90H
LCALL R_BIT
MOV A,#10100101B ;充电器设置
LCALL R_BIT
SETB LED3CLK
CLR RST
CLR LED3CLK
SETB RST
MOV A,#8EH
LCALL R_BIT
MOV A,#80H
LCALL R_BIT
SETB LED3CLK
CLR RST
RET
;----------------------STONE-----------------------------------
STONE: CLR LED3CLK ;写数据进1302
CLR RST
CLR LED3CLK
NOP
SETB RST
MOV A,#8EH
LCALL R_BIT
MOV A,#00H
LCALL R_BIT
SETB LED3CLK
CLR RST
CLR LED3CLK
NOP
CLR RST
CLR LED3CLK
SETB RST
MOV A,R1
LCALL R_BIT
MOV A,R0
LCALL R_BIT
NOP
SETB LED3CLK
CLR RST
NOP
NOP
CLR RST
CLR LED3CLK
SETB RST
MOV A,#8EH
LCALL R_BIT
MOV A,#80H
LCALL R_BIT
SETB LED3CLK
CLR RST
RET
;------------------------DELAY------------------------
DL1MS: MOV 43H,#14H ; every LED(2ms)
DL2: MOV 44H,#14H
DL1: NOP
NOP
DJNZ 44H,DL1
DJNZ 43H,DL2
RET
DL5MS: MOV 45H,#10
DL0: LCALL DISPLAY
DJNZ 45H,DL0
RET
;--------------------------TAB1,TAB2------------------
TAB1:
DB 081H;0
DB 0EDH;1
DB 043H;2
DB 049H;3
DB 02DH;4
DB 019H;5
DB 011H;6
DB 0CDH;7
DB 001H;8
DB 009H;9
TAB2: DB 081H;0
DB 0EDH;1
DB 0C2H;2
DB 0C8H;3
DB 0ACH;4
DB 098H;5
DB 090H;6
DB 0CBH;7
DB 080H;8
DB 088H;9
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -