📄 时钟显示实例.asm
字号:
ORG 0000H
AJMP MAIN
ORG 0003H
MOV R1,049H
CJNE R1,#00H,NEXT
AJMP TIME
NEXT:AJMP CHANGTIMES
MAIN:
MOV 030H,#0BFH
MOV 031H,#086H
MOV 032H,#0DBH
MOV 033H,#0CFH
MOV 034H,#0E6H
MOV 035H,#0EDH
MOV 036H,#0FDH
MOV 037H,#0A7H
MOV 038H,#0FFH
MOV 039H,#0EFH
MOV SP,#060H
MOV P0,#0FDH
MOV P1,#0FFH
MOV P0,#00H
MOV P2,#00H
MOV 040H,#00H
MOV 041H,#00H
MOV 049H,#00H
MOV 04EH,#00H
MOV 04FH,#01H
MOV 051H,#00H
MOV 052H,#00H
MOV 057H,#00H
MOV 05AH,#00H
MOV 05BH,#00H
MOV 05CH,#00H
SDA BIT P3.6
SCL BIT P3.7
CLR IE0
ACALL START
MOV A,#0A2H
ACALL WRBYTE
MOV A,#00H
ACALL WRBYTE
MOV A,#00H
ACALL WRBYTE
ACALL STOP
ACALL START
MOV A,#0A2H
ACALL WRBYTE
MOV A,#0EH
ACALL WRBYTE
MOV A,#081H
ACALL WRBYTE
ACALL STOP
ACALL START
MOV A,#0A2H
ACALL WRBYTE
MOV A,#0FH
ACALL WRBYTE
MOV A,#020H
ACALL WRBYTE
ACALL STOP
ACALL START
MOV A,#0A2H
ACALL WRBYTE
MOV A,#01H
ACALL WRBYTE
MOV A,#11H
ACALL WRBYTE
ACALL STOP
SETB IT0
SETB EX0
SETB EA
DD: MOV R0,041H
CJNE R0,#00H,DQ
ACALL START
MOV A,#0A2H
ACALL WRBYTE
MOV A,#03H
ACALL WRBYTE
ACALL START
MOV A,#0A3H
ACALL WRBYTE
ACALL RDBYTE
ACALL STOP
MOV A,R0
ANL A,#0FH
ADD A,#30H
MOV 043H,A
MOV A,R0
SWAP A
ANL A,#07H
ADD A,#30H
MOV 044H,A
ACALL START
MOV A,#0A2H
ACALL WRBYTE
MOV A,#04H
ACALL WRBYTE
ACALL START
MOV A,#0A3H
ACALL WRBYTE
ACALL RDBYTE
ACALL STOP
MOV A,R0
ANL A,#0FH
ADD A,#30H
MOV 045H,A
MOV A,R0
SWAP A
ANL A,#03H
ADD A,#30H
MOV 046H,A
MOV 041H,#01H
DQ:
MOV R0,040H
CJNE R0,#01H,DQ1
CLR P2.7
ACALL D1
ACALL D2
ACALL D3
ACALL D4
AJMP DD
DQ1:
SETB P2.7
ACALL D1
ACALL D2
ACALL D3
ACALL D4
MOV R0,04EH
CJNE R0,#00H,GOON
MOV A,056H
CJNE A,046H,TOGOON
MOV A,055H
CJNE A,045H,TOGOON
MOV A,054H
CJNE A,044H,TOGOON
MOV A,053H
CJNE A,043H,TOGOON
MOV 057H,#01H
MOV R0,052H
CJNE R0,#00H,DQ11
SETB P2.2
AJMP GOON
DQ11: CLR P2.2
AJMP GOON
TOGOON: MOV 057H,#00H
CLR P2.2
GOON:
CLR EA
CLR P1.5
JNB P1.4,TOCHANGTIME
SETB P1.5
CLR P1.7
JNB P1.4,TOCHANGCLOCK
SETB P1.7
CLR P1.6
JNB P1.4,TOCLOCKOC
SETB P1.6
SETB EA
AJMP DD
TOCHANGTIME:MOV 058H,#00H
CLR P2.2
AJMP CHANGTIME
TOCHANGCLOCK:
CLR P2.2
SETB P1.7
ACALL START
MOV A,#0A0H
ACALL WRBYTE
MOV A,#00H
ACALL WRBYTE
ACALL START
MOV A,#0A1H
ACALL WRBYTE
ACALL RDBYTE
ACALL STOP
MOV A,R0
ANL A,#0FH
ADD A,#30H
MOV 045H,A
MOV A,R0
SWAP A
ANL A,#03H
ADD A,#30H
MOV 046H,A
ACALL START
MOV A,#0A0H
ACALL WRBYTE
MOV A,#01H
ACALL WRBYTE
ACALL START
MOV A,#0A1H
ACALL WRBYTE
ACALL RDBYTE
ACALL STOP
MOV A,R0
ANL A,#0FH
ADD A,#30H
MOV 043H,A
MOV A,R0
SWAP A
ANL A,#07H
ADD A,#30H
MOV 044H,A
MOV 058H,#01H
AJMP CHANGTIME
TOCLOCKOC:CLR P2.2
CLR P1.6
TC: JNB P1.4,TC
SETB P1.6
CLOCKOC: AJMP OFF
ON: MOV 04EH,#00H
MOV P2,#040H
MOV P0,#037H
ACALL DELAY
MOV P2,#020H
MOV P0,#03FH
ACALL DELAY
CLR P1.7
JNB P1.4,TOOFF
SETB P1.7
CLR P1.6
JNB P1.4,TODD
SETB P1.6
AJMP ON
TOOFF: CLR P1.7
TF: JNB P1.4,TF
SETB P1.7
AJMP OFF
TODD: CLR P1.6
TODD1: JNB P1.4,TODD1
SETB P1.6
AJMP DD
OFF: MOV 04EH,#01H
MOV P2,#040H
MOV P0,#071H
ACALL DELAY
MOV P2,#020H
MOV P0,#071H
ACALL DELAY
MOV P2,#010H
MOV P0,#03FH
ACALL DELAY
CLR P1.5
JNB P1.4,TOON
SETB P1.5
CLR P1.6
JNB P1.4,TODD2
SETB P1.6
AJMP OFF
TODD2: CLR P1.6
TODD3: JNB P1.4,TODD3
SETB P1.6
AJMP DD
TOON: CLR P1.5
TN: JNB P1.4,TN
SETB P1.5
AJMP ON
CHANGTIME:MOV 049H,#01H
SETB EA
CHANGD1: MOV R0,04AH
CJNE R0,#00H,CD1
ACALL D1
ACALL D2
ACALL D3
ACALL D4
ACALL KEY0TO2
MOV R0,051H
CJNE R0,#01H,CHANGD1
MOV 046H,059H
CLR P1.7
JNB P1.4,DR1
SETB P1.7
AJMP CHANGD1
DR1: SETB P1.7
MOV 051H,#00H
AJMP CHANGD2
CD1: MOV R0,04AH
CJNE R0,#01H,CHANGD1
ACALL D2
ACALL D3
ACALL D4
ACALL KEY0TO2
MOV R0,051H
CJNE R0,#01H,CD1
MOV 046H,059H
CLR P1.7
JNB P1.4,DR11
SETB P1.7
AJMP CD1
DR11: SETB P1.7
MOV 051H,#00H
AJMP CHANGD2
CHANGD2: MOV R0,04AH
CJNE R0,#00H,CD2
ACALL D1
ACALL D2
ACALL D3
ACALL D4
MOV R0,046H
CJNE R0,#032H,C2
ACALL KEY0TO3
AJMP C22
C2: ACALL KEY0TO9
C22: MOV R0,051H
CJNE R0,#01H,CHANGD2
MOV 045H,059H
CLR P1.7
JNB P1.4,DR2
SETB P1.7
AJMP CHANGD2
DR2: SETB P1.7
MOV 051H,#00H
AJMP CHANGD3
CD2: MOV R0,04AH
CJNE R0,#01H,CHANGD2
ACALL D1
ACALL D3
ACALL D4
MOV R0,046H
CJNE R0,#32H,C222
ACALL KEY0TO3
AJMP C2222
C222: ACALL KEY0TO9
C2222: MOV R0,051H
CJNE R0,#01H,CD2
MOV 045H,059H
CLR P1.7
JNB P1.4,DR22
SETB P1.7
AJMP CD2
DR22: SETB P1.7
MOV 051H,#00H
AJMP CHANGD3
CHANGD3: MOV R0,04AH
CJNE R0,#00H,CD3
ACALL D1
ACALL D2
ACALL D3
ACALL D4
ACALL KEY0TO5
MOV R0,051H
CJNE R0,#01H,CHANGD3
MOV 044H,059H
CLR P1.7
JNB P1.4,DR3
SETB P1.7
AJMP CHANGD3
DR3: SETB P1.7
MOV 051H,#00H
AJMP CHANGD4
CD3: MOV R0,04AH
CJNE R0,#01H,CHANGD3
ACALL D1
ACALL D2
ACALL D4
ACALL KEY0TO5
MOV R0,051H
CJNE R0,#01H,CD3
MOV 044H,059H
CLR P1.7
JNB P1.4,DR33
SETB P1.7
AJMP CD3
DR33: SETB P1.7
MOV 051H,#00H
AJMP CHANGD4
CHANGD4: MOV R0,04AH
CJNE R0,#00H,CD4
ACALL D1
ACALL D2
ACALL D3
ACALL D4
ACALL KEY0TO9
MOV R0,051H
CJNE R0,#01H,CHANGD4
MOV 043H,059H
CLR P1.7
JNB P1.4,DR4
SETB P1.7
AJMP CHANGD4
DR4: SETB P1.7
MOV 051H,#00H
MOV R0,058H
CJNE R0,#00H,T
CLR P1.7
O:JNB P1.4,O
SETB P1.7
AJMP CHANGTIMEOVER
T: CLR P1.7
OO:JNB P1.4,OO
SETB P1.7
AJMP TOCHANGCLOCKOVER
CD4: MOV R0,04AH
CJNE R0,#01H,CHANGD4
ACALL D1
ACALL D2
ACALL D3
ACALL KEY0TO9
MOV R0,051H
CJNE R0,#01H,CD4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -