📄 时钟.asm
字号:
SECOND EQU 30H
MINITE EQU 31H
HOUR EQU 32H
COUNT EQU 33H
COUNT1 EQU 34H
COUNT2 EQU 35H
COUNT3 EQU 36H
COUNT4 EQU 37H
UUU EQU 38H
UUU2 EQU 39H
UUU3 EQU 3AH
UUU4 EQU 3BH
SHIJIAN EQU 40H
JIAGE EQU 48H
ZJ EQU 50H
LC EQU 70H
WEI1 BIT 22H.1
WEI2 BIT 22H.2
WEI3 BIT 22H.3
WEI4 BIT 22H.4
WEI5 BIT 22H.5
WEI6 BIT 22H.6
WEI7 BIT 22H.7
WEI8 BIT 23H.0
WEI9 BIT 23H.1
WEI10 BIT 23H.2
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0X
ORG 0013H
LJMP INT_1
ORG 0030H
MAIN: MOV SP,#60H
MOV SECOND,#00
MOV MINITE,#00
MOV HOUR,#00
MOV COUNT,#00
MOV COUNT1,#00
MOV COUNT3,#00
MOV R3,#9
SETB WEI1
CLR WEI2
CLR WEI3
CLR WEI5
CLR WEI6
CLR C
LCALL DISP
MOV TMOD,#01H
MOV TH0,#(65535-5000) / 256
MOV TL0,#(65535-5000) MOD 256
SETB EA
SETB ET0
SETB TR0
LCALL CSLC
LCALL CSHJ
LCALL CSZJ
KEY: JB P1.0,JIAN2
JNB P1.0,$
LCALL TIAOSHI
JIAN2: JB P1.1,JIAN3
JNB P1.1,$
LCALL JIJIA
JIAN3: JB P1.2,JIAN4
JNB P1.2,$
LCALL GAIJIA
JIAN4: JB P1.3,BAITIAN
LCALL WSJ
LJMP KEY
BAITIAN:LCALL BTJ
LJMP KEY
DISP: MOV A,#SHIJIAN
ADD A,#8
DEC A
MOV R0,A
MOV A,HOUR
MOV B,#10
DIV AB
MOV @R0,A
DEC R0
MOV A,B
MOV @R0,A
DEC R0
MOV A,#21
MOV @R0,A
DEC R0
MOV A,MINITE
MOV B,#10
DIV AB
MOV @R0,A
DEC R0
MOV A,B
MOV @R0,A
DEC R0
MOV A,#21
MOV @R0,A
DEC R0
MOV A,SECOND
MOV B,#10
DIV AB
MOV @R0,A
DEC R0
MOV A,B
MOV @R0,A
DEC R0
RET
BTJ: MOV 50H,48H
MOV 51H,49H
RET
WSJ: MOV 50H,4EH
MOV 51H,4FH
RET
ZTJ: MOV 50H,4BH
MOV 51H,4CH
RET
DISP2: MOV A,70H
INC A
CJNE A,#10,DI0
MOV 70H,#00
JB IE1,D
INC UUU4
MOV A,UUU4
CJNE A,#4,DD
MOV UUU4,#0
LCALL ZTJ
MOV A,55H
ADD A,50H
MOV B,#10
DIV AB
MOV 55H,B
JZ ZTJ3
SETB WEI7
ZTJ3: MOV A,56H
ADDC A,51H
JNB WEI7,ZTJ2
INC A
CLR WEI7
ZTJ2: MOV B,#10
DIV AB
CJNE A,#2,ZTJ0
MOV A,B
ADD A,#10
MOV 56H,A
LJMP D
ZTJ0: CJNE A,#3,D
MOV A,B
ADD A,#10
MOV 56H,A
ZTJ1: INC 57H
MOV A,57H
CJNE A,#10,D
MOV 57H,#0
LJMP D
DD: JB P1.3,DDD
LCALL WSJ
LJMP D
DDD: LCALL BTJ
D: MOV A,71H
INC A
CJNE A,#6,DI1
MOV 71H,#00
MOV A,72H
INC A
CJNE A,#20,DI2
MOV 72H,#10
MOV A,73H
INC A
CJNE A,#6,DI3
MOV 73H,#00
DI0: MOV 70H,A
LJMP EXIT4
DI1: MOV 71H,A
LJMP EXIT4
DI2: MOV 72H,A
LJMP EXIT4
DI3: MOV 73H,A
LJMP EXIT4
EXIT4: RET
T0X: PUSH PSW
PUSH ACC
MOV TH0,#(65535-5000) / 256
MOV TL0,#(65535-5000) MOD 256
INC COUNT1
MOV A,COUNT1
CJNE A,#8,NEXT
MOV COUNT1,#00
NEXT: MOV A,COUNT1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P2,A
MOV A,COUNT1
JB WEI5,XLCZJ
JB WEI3,XLC
MOV UUU,R3
CJNE A,UUU,NEXT0
LJMP SHANG
NEXT0: JB WEI2,NEXT1
DEC UUU
CJNE A,UUU,NEXT1
SHANG: MOV A,COUNT
MOV B,#100
DIV AB
JZ NEXT1
MOV P0,#00H
LJMP NEXT2
NEXT1: JB WEI2, XIANJIA
MOV A,#SHIJIAN
ADD A,COUNT1
MOV R0,A
MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP NEXT2
XIANJIA:MOV A,#JIAGE
ADD A,COUNT1
MOV R1,A
MOV A,@R1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP NEXT2
XLC: MOV A,#LC
ADD A,COUNT1
MOV R1,A
MOV A,@R1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP NEXT2
XLCZJ: MOV A,#ZJ
ADD A,COUNT1
MOV R1,A
MOV A,@R1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP NEXT2
NEXT2: INC COUNT
MOV A,COUNT
CJNE A,#200,LOOP1
MOV COUNT,#00
JNB WEI1,LOOP1
JB WEI3,LOOP
LJMP LOOP2
LOOP: ACALL DISP2
LOOP2: INC SECOND
MOV A,SECOND
CJNE A,#60,LOOP1
MOV SECOND,#00
INC MINITE
MOV A,MINITE
CJNE A,#60,LOOP1
MOV MINITE,#00
INC HOUR
MOV A,HOUR
CJNE A,#24,LOOP1
MOV HOUR,#00
LOOP1: LCALL DISP
POP ACC
POP PSW
RETI
TIAOSHI:CLR WEI1
MOV R3,#7
YI: JB P1.0,JIA
JNB P1.0,$
CJNE R3,#1,UU
MOV R3,#9
LJMP EXIT
UU: DEC R3
DEC R3
DEC R3
JIA: JB P1.1,JIAN
JNB P1.1,$
CJNE R3,#7,JF
INC HOUR
MOV A,HOUR
CJNE A,#24,JF
MOV HOUR,#00
JF: CJNE R3,#4,JM
INC MINITE
MOV A,MINITE
CJNE A,#60,JM
MOV MINITE,#00
JM: CJNE R3,#1,JIAN
INC SECOND
MOV A,SECOND
CJNE A,#60,JIAN
MOV SECOND,#00
JIAN: JB P1.2,YI
JNB P1.2,$
CJNE R3,#7,JF1
MOV A,HOUR
CJNE A,#00,S1
MOV HOUR,#23
AJMP JF1
S1: DEC HOUR
JF1: CJNE R3,#4,JM1
MOV A,MINITE
CJNE A,#00,S2
MOV MINITE,#59
AJMP JM1
S2: DEC MINITE
JM1: CJNE R3,#1,YI
MOV A,SECOND
CJNE A,#00,S3
MOV SECOND,#59
AJMP YI
S3: DEC SECOND
LJMP YI
EXIT: SETB WEI1
RET
CSHJ: MOV DPTR,#TABLE
MOV A,#JIAGE
ADD A,#7
MOV R1,A
MOV A,#12
MOV @R1,A
DEC R1
MOV A,#5
MOV @R1,A
DEC R1
MOV A,#20
MOV @R1,A
DEC R1
MOV A,#11
MOV @R1,A
DEC R1
MOV A,#2
MOV @R1,A
DEC R1
MOV A,#20
MOV @R1,A
DEC R1
MOV A,#16
MOV @R1,A
DEC R1
MOV A,#7
MOV @R1,A
RET
GAIJIA: SETB WEI2
MOV R3,#8
GAI0: JB P1.0,GAI1
JNB P1.0,$
CJNE R3,#0,YI2
LJMP EXIT1
YI2: DEC R3
CJNE R3,#2,QWE
DEC R3
LJMP GAI1
QWE: CJNE R3,#5,GAI1
DEC R3
GAI1: JB P1.1,GAI2
JNB P1.1,$
MOV A,#JIAGE
ADD A,R3
MOV R1,A
MOV A,@R1
MOV B,#10
DIV AB
MOV UUU2,A
MOV A,@R1
INC A
MOV UUU3,A
MOV B,#10
DIV AB
CJNE A,UUU2,GAI3
MOV @R1,UUU3
LJMP GAI2
GAI3: MOV A,UUU3
SUBB A,#10
MOV @R1,A
GAI2: JB P1.2,GAI0
JNB P1.2,$
CJNE R3,#8,GAI5
LJMP EXIT1
GAI5: MOV A,#JIAGE
ADD A,R3
MOV R1,A
MOV A,@R1
MOV B,#10
DIV AB
MOV UUU2,A
MOV A,@R1
DEC A
MOV UUU3,A
MOV B,#10
DIV AB
CJNE A,UUU2,GAI4
MOV @R1,UUU3
LJMP GAI2
GAI4: MOV A,UUU3
ADD A,#10
MOV @R1,A
LJMP GAI0
EXIT1: CLR WEI2
MOV R3,#9
RET
JIJIA: SETB WEI3
SETB EX1
CLR IT1
JI1: JB P1.0,JI5
JNB P1.0,$
SETB WEI9
JI5: JNB WEI9,JI2
MOV A,71H
MOV B,#2
DIV AB
MOV A,B
JZ EE1
CLR WEI5
LJMP JI2
EE1: SETB WEI5
JI2: JB P1.1,JI3
JNB P1.1,$
CPL EX1
JI3: JB P1.2,JI1
JNB P1.2,$
JB WEI3,EE0
CLR WEI5
LJMP JI4
EE0: CLR WEI3
CLR EX1
SETB WEI5
JI4: JB P1.2,JI4
JNB P1.2,$
JB WEI3,EE0
CLR WEI5
CLR WEI6
CLR WEI9
LCALL CSZJ
LCALL CSLC
LJMP EXIT2
EXIT2: CLR WEI3
RET
CSLC: SETB RS1
SETB RS0
MOV DPTR,#TABLE
MOV A,#LC
ADD A,#7
MOV R1,A
MOV A,#0
MOV @R1,A
DEC R1
MOV A,#10
MOV @R1,A
DEC R1
MOV A,#0
MOV @R1,A
DEC R1
MOV A,#21
MOV @R1,A
DEC R1
MOV A,#0
MOV @R1,A
DEC R1
MOV A,#10
MOV @R1,A
DEC R1
MOV A,#0
MOV @R1,A
DEC R1
MOV A,#0
MOV @R1,A
CLR RS1
CLR RS0
RET
CSZJ: SETB RS1
SETB RS0
MOV DPTR,#TABLE
MOV A,#ZJ
ADD A,#7
MOV R0,A
MOV A,#0
MOV @R0,A
DEC R0
MOV A,#15
MOV @R0,A
DEC R0
MOV A,#0
MOV @R0,A
DEC R0
MOV A,#20
MOV @R0,A
DEC R0
MOV A,#20
MOV @R0,A
DEC R0
MOV A,#20
MOV @R0,A
DEC R0
MOV A,49H
MOV @R0,A
DEC R0
MOV A,48H
MOV @R0,A
CLR RS1
CLR RS0
RET
INT_1: PUSH PSW
PUSH ACC
SETB RS1
SETB RS0
INC COUNT3
MOV A,COUNT3
CJNE A,#200,EXIT5
MOV COUNT3,#00
INC COUNT4
MOV A,COUNT4
CJNE A,#50,EXIT5
MOV COUNT4,#00
MOV A,75H
INC A
CJNE A,#10,IN1
MOV 75H,#00
JB WEI6,JIAJIA
LJMP IN0
EXIT5: LJMP EXIT3
JIAJIA: MOV A,55H
ADD A,50H
MOV B,#10
DIV AB
MOV 55H,B
JZ I3
SETB WEI7
I3: MOV A,56H
ADDC A,51H
JNB WEI7,I2
INC A
CLR WEI7
I2: MOV B,#10
DIV AB
CJNE A,#2,I0
MOV A,B
ADD A,#10
MOV 56H,A
LJMP IN0
I0: CJNE A,#3,IN0
MOV A,B
ADD A,#10
MOV 56H,A
I1: INC 57H
MOV A,57H
CJNE A,#10,IN0
MOV 57H,#0
LJMP IN0
IN0: MOV A,76H
INC A
CJNE A,#20,IN2
MOV 76H,#10
MOV A,77H
INC A
CJNE A,#10,IN3
MOV 77H,#00
LJMP IN4
IN1: MOV 75H,A
LJMP IN4
IN2: MOV 76H,A
LJMP IN4
IN3: MOV 77H,A
LJMP IN4
IN4: JB WEI6,EXIT3
MOV A,76H
CJNE A,#12,EXIT3
SETB WEI6
EXIT3: CLR RS1
CLR RS0
POP ACC
POP PSW
RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,00H,40H
TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -