📄 myclock.asm
字号:
;已使用的内存空间:-----------------------------
;80H , 81H ,82H
;31H -- 38H
;30H
;5BH
;
;
;----------------------------------------------
COUNT EQU 5BH
ORG 0000H
LJMP INIT
;-----------------------------------------------
ORG 000BH
LJMP TIME
;-----------------------------------------------
ORG 0050H
INIT:
MOV TMOD , #01H
SETB EA
SETB ET0
MOV TH0 , #0D8H
MOV TL0 , #0F0H
SETB TR0
MOV R0 , #31H
AG: MOV @R0 , #00H
INC R0
CJNE R0 , #39H , AG
MOV 33H , #0AH
MOV 36H , #0AH
MOV COUNT , #00H
MOV DPTR , #TABLE
SETB TR0
;-----------------------------------------------------
MAIN:
LP1: MOV P3 , #00H
MOV 30H , #00H ;用30H内存单元保存当前P3的输出
MOV R0 , #38H
LP0: MOV A , @R0
MOVC A , @A+DPTR
MOV P1 , A
ACALL DELAY
DEC R0
MOV A , 30H
ADD A , #04H
MOV 30H , A
MOV P3 , A
CJNE A , #20H, LP0
AJMP LP1
;-------------------------------------------------------
DELAY: MOV R2 , #1FH
DL1: MOV R3 , #1FH
DJNZ R3 , $
DJNZ R2 , DL1
RET
;------------------------------------------------------
TIME: PUSH ACC
PUSH PSW
SETB RS0
MOV TH0 , #0D8H
MOV TL0 , #0F0H
INC COUNT
MOV A , COUNT
CJNE A , #100 , RT
MOV COUNT , #00H
INC 31H
MOV A , 31H
CJNE A , #10 , RT
MOV 31H , #00H
INC 32H
MOV A , 32H
CJNE A , #6 , RT
MOV 32H , #00H
INC 34H
MOV A , 34H
CJNE A , #9 , RT
MOV 34H , #00H
INC 35H
MOV A , 35H
CJNE A , #6 , RT
MOV 35H , #00H
INC 37H
MOV A , 37H
CJNE A , #5 , RT
MOV 37H , #00H
INC 38H
MOV A , 38H
CJNE A ,#3 , RT
MOV 38H , #00H
RT: POP PSW
POP ACC
RETI
TABLE: DB 0C0H , 0F9H , 0A4H , 0B0H , 99H ,92H ,82H ,0F8H ;P1口输出到数码管的表值
DB 80H , 90H , 0BFH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -