📄 时钟.txt
字号:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INC_1USEC
LED: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
MAIN: MOV R2,#00H
MOV 71H,#00H ;SECOND
MOV 72H,#00H ;MIN
MOV 73H,#00H ;HOUR
MOV 74H,#00H ;PUT THE second个位和十位数字
MOV 75H,#00H
MOV 76H,#00H ;PUT THE miniut个位和十位数字
MOV 77H,#00H
MOV 78H,#00H ;PUT THE hour个位和十位数字
MOV 79H,#00H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
LL: LCALL TZ
LCALL DISPLAY
AJMP LL
INC_1USEC:
MOV TH0,#3CH
MOV TL0,#0B0H
INC R2
CJNE R2,#14H,L
MOV R2,#00H
MOV A,71H
CJNE A,#60,L1
MOV 71H,#00H ; 判断秒否满分钟加
MOV A,72H
CJNE A,#60,L2;判断分钟满否时钟加
MOV 72H,#00H
MOV A,73H
CJNE A,#24,L3 ; 判断时满否
MOV 73H,#00H
lJMP L
L1: INC 71H
LJMP L
L2: INC 72H
LJMP L
L3: INC 73H
L: RETI
;取数字的个位,十位放于各自的地址单元中
TZ: MOV R3,#3
MOV R1,#74H
MOV R0,#71H
L4:MOV A,@R0
DA A
MOV R4,A ;保存转化后的BCD码
ANL A,#0FH
MOV @R1,A ;取低四位
MOV A,R4
SWAP A
ANL A,#0FH
INC R1
MOV @R1,A ;取高四位
INC R0
DJNZ R3,L4
RET
DISPLAY:MOV R5,#0FEH
MOV R0,#74H
MOV DPTR,#LED
PLAY: MOV A,R5 ;SELECT ONE OF SIX 7SEGMENT
MOV P3,A
MOV A,@R0 ;GET THE NUMBER
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV A,R5
RL A
JNB ACC.6,RESET
MOV R5,A
INC R0
AJMP PLAY
RESET: RET
;程序延时
DELAY: MOV R7,#250
LOOP : NOP
DJNZ R7,LOOP
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -