📄 时钟显示实例.asm
字号:
MOV 043H,059H
CLR P1.7
JNB P1.4,DR44
SETB P1.7
AJMP CD4
DR44: SETB P1.7
MOV 051H,#00H
MOV R0,058H
CJNE R0,#00H,TT
CLR P1.7
O1: JNB P1.4,O1
SETB P1.7
AJMP CHANGTIMEOVER
TT: CLR P1.7
OO1: JNB P1.4,OO1
SETB P1.7
AJMP TOCHANGCLOCKOVER
TOCHANGCLOCKOVER:
AJMP CHANGCLOCKOVER
CHANGTIMEOVER:
PUSH PSW
PUSH A
CLR EA
MOV A,044H
SUBB A,#030H
MOV B,#010H
MUL AB
MOV 044H,A
MOV A,043H
SUBB A,#030H
MOV 043H,A
MOV A,044H
ADD A,043H
MOV 047H,A
ACALL START
MOV A,#0A2H
ACALL WRBYTE
MOV A,#03H
ACALL WRBYTE
MOV A,047H
ACALL WRBYTE
ACALL STOP
POP A
POP PSW
MOV A,046H
SUBB A,#030H
MOV B,#010H
MUL AB
MOV 046H,A
MOV A,045H
SUBB A,#030H
MOV 045H,A
MOV A,046H
ADD A,045H
MOV 048H,A
ACALL START
MOV A,#0A2H
ACALL WRBYTE
MOV A,#04H
ACALL WRBYTE
MOV A,048H
ACALL WRBYTE
ACALL STOP
MOV 049H,#00H
SETB EA
AJMP DD
CHANGCLOCKOVER:
CLR EA
MOV 056H,046H
MOV 055H,045H
MOV 054H,044H
MOV 053H,043H
PUSH PSW
PUSH A
MOV A,046H
SUBB A,#030H
MOV B,#010H
MUL AB
MOV 046H,A
MOV A,045H
SUBB A,#030H
MOV 045H,A
MOV A,046H
ADD A,045H
MOV 047H,A
ACALL START
MOV A,#0A0H
ACALL WRBYTE
MOV A,#00H
ACALL WRBYTE
MOV A,047H
ACALL WRBYTE
ACALL STOP
POP A
POP PSW
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV A,044H
SUBB A,#030H
MOV B,#010H
MUL AB
MOV 044H,A
MOV A,043H
SUBB A,#030H
MOV 043H,A
MOV A,044H
ADD A,043H
MOV 048H,A
ACALL START
MOV A,#0A0H
ACALL WRBYTE
MOV A,#01H
ACALL WRBYTE
MOV A,048H
ACALL WRBYTE
ACALL STOP
MOV 049H,#00H
SETB EA
CHANGTIMES:
PUSH PSW
PUSH A
MOV R1,04AH
CJNE R1,#00H,CTS
MOV 04AH,#01H
POP A
POP PSW
RETI
CTS:MOV 04AH,#00H
POP A
POP PSW
RETI
KEY0TO2:
CLR502: CLR P1.5
JNB P1.1,S1
SETB P1.5
CLR602: CLR P1.6
JNB P1.1,S2
JNB P1.4,TOS11
SETB P1.6
RET
KEY0TO3:
CLR503: CLR P1.5
JNB P1.1,S1
SETB P1.5
CLR603: CLR P1.6
JNB P1.1,S2
JNB P1.4,TOS11
SETB P1.6
CLR703 :CLR P1.7
JNB P1.1,S3
SETB P1.7
RET
KEY0TO5:
CLR505: CLR P1.5
JNB P1.1,S1
JNB P1.2,S4
SETB P1.5
CLR605: CLR P1.6
JNB P1.1,S2
JNB P1.2,S5
JNB P1.4,TOS11
SETB P1.6
CLR705 :CLR P1.7
JNB P1.1,S3
SETB P1.7
RET
TOS11: AJMP S11
KEY0TO9:
CLR5: CLR P1.5
JNB P1.1,S1
JNB P1.2,S4
JNB P1.3,S7
SETB P1.5
CLR6: CLR P1.6
JNB P1.1,S2
JNB P1.2,S5
JNB P1.3,S8
JNB P1.4,S11
SETB P1.6
CLR7: CLR P1.7
JNB P1.1,S3
JNB P1.2,S6
JNB P1.3,S9
SETB P1.7
RET
S1: MOV 059H,#031H
MOV 051H,#01H
SETB P1.5
RET
S2: MOV 059H,#032H
MOV 051H,#01H
SETB P1.6
RET
S3: MOV 059H,#033H
MOV 051H,#01H
SETB P1.7
RET
S4: MOV 059H,#034H
MOV 051H,#01H
SETB P1.5
RET
S5: MOV 059H,#035H
MOV 051H,#01H
SETB P1.6
RET
S6: MOV 059H,#036H
MOV 051H,#01H
SETB P1.7
RET
S7: MOV 059H,#037H
MOV 051H,#01H
SETB P1.5
RET
S8: MOV 059H,#038H
MOV 051H,#01H
SETB P1.6
RET
S9: MOV 059H,#039H
MOV 051H,#01H
SETB P1.7
RET
S11: MOV 059H,#030H
MOV 051H,#01H
SETB P1.6
RET
D4: SETB P2.6
MOV R1,043H
MOV P0,@R1
ACALL DELAY
CLR P2.6
RET
D3: SETB P2.5
MOV R0,044H
MOV P0,@R0
ACALL DELAY
CLR P2.5
RET
D2: SETB P2.4
MOV R0,045H
MOV P0,@R0
ACALL DELAY
CLR P2.4
RET
D1: SETB P2.3
MOV R0,046H
MOV P0,@R0
ACALL DELAY
CLR P2.3
RET
TIME: PUSH PSW
PUSH A
MOV 041H,#00H
MOV R1,040H
CJNE R1,#00H,C0
MOV 040H,#01H
MOV R1,057H
CJNE R1,#00H,TIME1
POP A
POP PSW
RETI
C0:MOV 040H,#00H
MOV R1,057H
CJNE R1,#00H,TIME1
POP A
POP PSW
RETI
TIME1: MOV R1,04FH
CJNE R1,#00H,TIME2
MOV 04FH,#01H
MOV 052H,#00H
POP A
POP PSW
RETI
TIME2:MOV 04FH,#00H
MOV 052H,#01H
POP A
POP PSW
RETI
DELAY: MOV R6,#0FFH
Q: ACALL DELAY1
DJNZ R6,Q
RET
DELAY1: MOV R7,#05H
Q1:DJNZ R7,Q1
RET
START: SETB SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SDA
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
RET
STOP: CLR SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
SETB SDA
NOP
NOP
NOP
NOP
RET
WRBYTE: MOV R3,#08H
WLP: RLC A
JC WR1
SJMP WR0
WLP1: DJNZ R3,WLP
NOP
SETB SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
NOP
RET
WR1: SETB SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
SJMP WLP1
WR0: CLR SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
SJMP WLP1
RDBYTE: MOV R4,#08H
RLP: SETB SDA
NOP
SETB SCL
NOP
NOP
MOV C,SDA
MOV A,R0
CLR SCL
RLC A
MOV R0,A
NOP
NOP
NOP
DJNZ R4,RLP
SETB SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
NOP
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -