DBUF0 EQU 30H
TEMP EQU 40H
DIN BIT P0.4
CLK BIT P0.5
ORG 0000H
LJMP START0
ORG 0100H
START0: MOV 30H,#11H
MOV 31H,#11H
MOV 32H,#0DH
MOV 33H,#0EH
MOV 34H,#0EH
MOV 35H,#0FH
MOV 36H,#11H
MOV 37H,#11H
CLR P0.0
DISP0: MOV R0,#DBUF0
MOV R1,#TEMP
MOV R2,#8
DP100:MOV DPTR,#SEGTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,DP100
MOV R0,#TEMP
MOV R1,#8
DP120:MOV R2,#8
MOV A,@R0
DP130: RLC A
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,DP130
INC R0
DJNZ R1,DP120
READY: SETB P1.0
MOV C,P1.0
JC READY
START: MOV A,#0FFH
MOV P2,A
MOV 30H,#11H
MOV 31H,#11H
MOV 32H,#0DH
MOV 33H,#0EH
MOV 34H,#0EH
MOV 35H,#0FH
MOV 36H,#11H
MOV 37H,#11H
DISP1: MOV R0,#DBUF0
MOV R1,#TEMP
MOV R2,#8
DP101:MOV DPTR,#SEGTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,DP101
MOV R0,#TEMP
MOV R1,#8
DP121:MOV R2,#8
MOV A,@R0
DP131: RLC A
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,DP131
INC R0
DJNZ R1,DP121
CLEAR: SETB P1.1
MOV C,P1.1
JNC CLEAR1
LJMP CLEAR
CLEAR1: MOV 30H,#00H MOV 31H,#00H
//OO-OO-OO
MOV 32H,#11H
MOV 33H,#00H
MOV 34H,#00H
MOV 35H,#11H
MOV 36H,#00H
MOV 37H,#00H
DISP2: MOV R0,#DBUF0
MOV R1,#TEMP
MOV R2,#8
DP102:MOV DPTR,#SEGTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,DP102
MOV R0,#TEMP
MOV R1,#8
DP122:MOV R2,#8
MOV A,@R0
DP132: RLC A
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,DP132
INC R0
DJNZ R1,DP122
SETTIME://JNB P1.2,HOU1
//JNB P1.3,HOU2
JNB P1.4,MIN1
JNB P1.5,MIN2
JNB P1.6,SEC1
JNB P1.7,SEC2
JNB P1.0,COUNTDOWN
LJMP SETTIME
// HOU1:MOV A,30H
// INC A
// MOV 30H,A
// CJNE A,#06H,JUMP
// MOV 30H,#00H
// CALL DELAY
// LJMP DISP2
HOU2:MOV A,31H
INC A
MOV 31H,A
CJNE A,#0AH,JUMP
MOV 31H,#00H
CALL DELAY
LJMP DISP2
MIN1:MOV A,33H
INC A
MOV 33H,A
CJNE A,#06H,JUMP
MOV 33H,#00H
CALL DELAY
LJMP DISP2
MIN2:MOV A,34H
INC A
MOV 34H,A
CJNE A,#0AH,JUMP
MOV 34H,#00H
CALL DELAY
LJMP DISP2
SEC1:MOV A,36H
INC A
MOV 36H,A
CJNE A,#06H,JUMP
MOV 36H,#00H
CALL DELAY
LJMP DISP2
SEC2:MOV A,37H
INC A
MOV 37H,A
CJNE A,#0AH,JUMP
MOV 37H,#00H
CALL DELAY
LJMP DISP2
JUMP:CALL DELAY
LJMP DISP2
COUNTDOWN:JNB P1.2,SETTIME
MOV A,37H
DEC A
MOV 37H,A
CJNE A,#0FFH,DISP3
MOV 37H,#09H
MOV A,36H
DEC A
MOV 36H,A
CJNE A,#0FFH,DISP3
MOV 36H,#05H
MOV A,34H
DEC A
MOV 34H,A
CJNE A,#0FFH,DISP3
MOV 34H,#09H
MOV A,33H
DEC A
MOV 33H,A
CJNE A,#0FFH,DISP3
MOV 33H,#05H
MOV A,31H
DEC A
MOV 31H,A
CJNE A,#0FFH,DISP3
MOV 33H,#09H
MOV A,30H
DEC A
MOV 30H,A
CJNE A,#0FFH,DISP3
LJMP FINISH
DISP3:MOV R0,#DBUF0
MOV R1,#TEMP
MOV R2,#8
DP103:MOV DPTR,#SEGTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,DP103
MOV R0,#TEMP
MOV R1,#8
DP123:MOV R2,#8
MOV A,@R0
DP133:RLC A
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,DP133
INC R0
DJNZ R1,DP123
DELAYC1:MOV R1,#50
DELAYC2:MOV R2,#40
DELAYC3:MOV R3,#235
DELAYC4:DJNZ R3,DELAYC4
DJNZ R2,DELAYC3
DJNZ R1,DELAYC2
CLEAR2: SETB P1.1
MOV C,P1.1
JC COUNTDOWN
AJMP CLEAR1
LJMP COUNTDOWN
FINISH:MOV 30H,#11H
MOV 31H,#11H
MOV 32H,#12H
MOV 33H,#0CH
MOV 34H,#13H
MOV 35H,#14H
MOV 36H,#11H
MOV 37H,#11H
DISP4:MOV R0,#DBUF0
MOV R1,#TEMP
MOV R2,#8
DP104:MOV DPTR,#SEGTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,DP104
MOV R0,#TEMP
MOV R1,#8
DP124:MOV R2,#8
MOV A,@R0
DP134:RLC A
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,DP134
INC R0
DJNZ R1,DP124
LIGHT:MOV A,#0AAH
MOV P2,A
CALL DELAY
MOV A,#55H
MOV P2,A
CALL DELAY
AGAIN:SETB P1.0
MOV C,P1.0
JC LIGHT
LJMP START
DELAY:MOV R6,#0
MOV R7,#0
DELAYLOOP:DJNZ R7,DELAYLOOP
DJNZ R6,DELAYLOOP
RET
OK:SJMP OK
SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH
DB 7DH,07H,7FH,6FH,77H,7CH
DB 79H,6FH,5CH,5EH,00H,40H
DB 76H,38H,73H
END
因篇幅问题不能全部显示,请点此查看更多更全内容