📄 time.asm
字号:
ORG 0000H
JMP MAIN
ORG 000BH
LJMP LOOP1
ORG 001BH
LJMP LOOP2
;========================================
HOUR DATA 30H
MIN DATA 31H
SEC DATA 32H
COUNT1 DATA 33H
COUNT EQU 34H ;秒计数
COUNTM DATA 35H ;分个位计数
COUNTM1 DATA 36H ;分十位计数
COUNTH DATA 37H ;时个位计数
COUNTH1 DATA 38H ;时十位计数
COUNTER DATA 39H
;========================================
ORG 0030H
MAIN:
MOV P0,#0FFH
MOV P2,#0FFH
MOV COUNTER,#00H
MOV COUNT1,#01H
MOV COUNTM1,#00H
MOV COUNTH1,#00H
MOV COUNTH,#00H
MOV COUNTM,#00H
MOV HOUR,#00H
MOV MIN,#00H
MOV SEC,#01H
SETB COUNT
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TH1,#8AH
MOV TL1,#0D0H
SETB PT0
SETB EA
SETB ET0
SETB ET1
START:
SETB TR0
SETB TR1
JNB COUNT,SEC1
LJMP START
LOOP1:
MOV TH0,#3CH
MOV TL0,#0B0H
MOV A,COUNT1
CJNE A,#28H,A0
JMP SEC01
A0: INC COUNT1
RETI
SEC01:
MOV COUNT1,#01H
CLR COUNT
RETI
SEC1:
SETB COUNT
INC SEC
MOV A,SEC
CJNE A,#60,B0
JMP MIN1
B0: JMP START
MIN1:
MOV SEC,#00H
INC MIN
INC COUNTM
MOV A,MIN
CJNE A,#60,A1
JMP HOUR1
A1: JMP START
HOUR1:
MOV MIN,#00H
INC HOUR
INC COUNTH
MOV A,HOUR
CJNE A,#24,A2
JMP ZERO1
A2: JMP START
ZERO1:
MOV HOUR,#00H
MOV COUNTH,#00H
MOV COUNTH1,#00H
JMP START
;=============================================
;读显示
LOOP2:
MOV TH1,#8AH
MOV TL1,#0D0H
MOV A,COUNTER
CJNE A,#0,C1
JMP MIN10
C1: CJNE A,#1,C2
JMP MIN11
C2: CJNE A,#2,C3
JMP HOUR10
C3: CJNE A,#3,C4
JMP HOUR11
C4: MOV COUNTER,#00H
RETI
;---------------------------------
;分钟个位显示
;---------------------------------
MIN10:
INC COUNTER
MOV A,COUNTM
CJNE A,#10,A3
JMP MINZERO
A3:
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#7FH
RETI
MINZERO:
MOV COUNTM,#00H
INC COUNTM1
MOV A,COUNTM1
CJNE A,#6,MIN11
JMP MINZREO1
;---------------------------------
;分钟十位显示
;---------------------------------
MIN11:
INC COUNTER
MOV A,COUNTM1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0BFH
RETI
MINZREO1:
MOV COUNTM1,#00H
JMP A3
;---------------------------------
;小时个位显示
;---------------------------------
HOUR10:
INC COUNTER
MOV A,COUNTH
CJNE A,#10,A4
JMP HOURZERO
A4:
MOV A,COUNTH
MOV DPTR,#TABLE1
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0DFH
RETI
HOURZERO:
MOV COUNTH,#00H
INC COUNTH1
MOV A,COUNTH1
CJNE A,#3,HOUR11
JMP HOURZREO1
;---------------------------------
;小时十位显示
;---------------------------------
HOUR11:
MOV COUNTER,#00H
MOV A,COUNTH1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0EFH
RETI
HOURZREO1:
MOV COUNTH1,#00H
JMP A4
TABLE: DB 0A0H,0BBH,62H,2AH,39H,2CH,24H,0BAH,20H,28H;数字0~9
TABLE1: DB 80H,9BH,42H,0AH,19H,0CH,04H,9AH,00H,08H;小时个位0~9
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -