📄 显示.asm
字号:
INCLUDE 'H51.INC'
LJMP MAIN
ORG 001BH
T0INT: PUSH PSW
MOV TL1,TTL
MOV TH1,TTH
SETB 00H
DJNZ CISHU,T0INTE
MOV CISHU,#100
SETB 01H
T0INTE: POP PSW
RETI
MAIN: LCALL CSHIH ;初始化
LP1: LCALL YIMA ;译码
LCALL LED4W ;显示
LCALL SUANSH ;计算时间
CLR 00H
JNB 00H,$
SJMP LP1
SUANSH: DJNZ SHANS,SUAN1
MOV SHANS,#50
CPL 04H
SUAN1: JNB 01H,SUANSE
CLR 01H
SETB 02H
INC MIAO
MOV A,MIAO
CJNE A,#60,SUANSE
MOV MIAO,#0
INC FEN
MOV A,FEN
CJNE A,#60,SUANSE
MOV FEN,#0
INC SHI
MOV A,SHI
CJNE A,#24,SUANSE
MOV SHI,#0
INC DAY
MOV A,DAY
CJNE A,#32,SUANSE
MOV DAY,#1
INC YUE
MOV A,YUE
CJNE A,#13,SUANSE
MOV YUE,#1
INC NIAN
SUANSE: RET
LED4W: MOV A,XWEI
MOV B,#3
MUL AB
MOV DPTR,#LED4T
JMP @A+DPTR
LED4T: LJMP LD4W1
LJMP LD4W2
LJMP LD4W3
LJMP LD4W4
LD4W1: MOV LEDD,MLED1
MOV A,#1
ANL A,SHAN
MOV LEDW,A
INC XWEI
SJMP LED4WE
LD4W2: MOV LEDD,MLED2
MOV A,#2
ANL A,SHAN
MOV LEDW,A
INC XWEI
SJMP LED4WE
LD4W3: MOV LEDD,MLED3
MOV A,#4
ANL A,SHAN
MOV LEDW,A
INC XWEI
SJMP LED4WE
LD4W4: MOV LEDD,MLED4
MOV A,#8
ANL A,SHAN
MOV LEDW,A
MOV XWEI,#0
LED4WE: MOV A,XYE
MOV B,#3
MUL AB
MOV DPTR,#SHANAB
JMP @A+DPTR
SHANAB: LJMP SHAN0
LJMP SHAN1
LJMP SHAN2
LJMP SHAN3
SHAN0: LJMP LEDEEE
SHAN1: JB 04H,SHAN12
ANL MLED3,#01111111B
LJMP LEDEEE
SHAN12: ORL MLED3,#10000000B
LJMP LEDEEE
SHAN2: LJMP LEDEEE
SHAN3: LJMP LEDEEE
LEDEEE: RET
YIMA: JNB 02H,YIMAE1
CLR 02H
MOV A,XYE
MOV B,#3
MUL AB
MOV DPTR,#YIMAB
JMP @A+DPTR
YIMAB: LJMP XYE0 ;显秒
LJMP XYE1 ;显时分
LJMP XYE2 ;显月日
LJMP XYE3 ;显年
YIMAE1: LJMP YIMAE
XYE0: MOV A,MIAO
MOV B,#10
DIV AB
MOV BLED1,B
MOV BLED2,A
MOV BLED3,#13H
MOV BLED4,#10H
LJMP YIMAA
XYE1: MOV A,FEN
MOV B,#10
DIV AB
MOV BLED1,B
MOV BLED2,A
MOV A,SHI
MOV B,#10
DIV AB
MOV BLED3,B
MOV BLED4,A
LJMP YIMAA
XYE2: MOV A,DAY
MOV B,#10
DIV AB
MOV BLED1,B
MOV BLED2,A
MOV A,YUE
MOV B,#10
DIV AB
MOV BLED3,B
MOV BLED4,A
LJMP YIMAA
XYE3: MOV A,NIAN
MOV B,#100
DIV AB
MOV BLED3,A
MOV A,B
MOV B,#10
DIV AB
MOV BLED1,B
MOV BLED2,A
MOV BLED4,#2
YIMAA: MOV R0,#BLED1 ;四位LED
MOV R1,#MLED1
MOV R7,#4
MOV DPTR,#YIMTAB
YIMAA1: MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R7,YIMAA1
YIMAE: RET
YIMTAB: DB 3FH,06H,5BH,4FH ;0,1,2,3
DB 66H,6DH,7DH,07H ;4,5,6,7
DB 7FH,6FH,77H,7CH ;8,9,A,B
DB 39H,5EH,79H,71H ;C,D,E,F
DB 00H,0F3H,76H,80H,40H ; ,P,H,.,-
CSHIH: MOV SHAN,#0FFH
MOV SHANS,#50
MOV XWEI,#0
MOV BIAOZ,#00000110B
MOV LEDD,#0
MOV LEDW,#0
MOV XYE,#1
MOV CISHU,#100 ;1s=10ms*100
MOV NIAN,#7 ;2007.11.09
MOV YUE,#11
MOV DAY,#9
MOV SHI,#20 ;20:15:00
MOV FEN,#15
MOV MIAO,#0
MOV TMOD,#10H ;T1方式1
MOV TTH,#0D8H ;10MS
MOV TTL,#0F0H
MOV TL1,TTL
MOV TH1,TTH
SETB ET1
SETB EA
SETB TR1
RET
BIAOZ DATA 20H ;标志:.0=1定时到,.1=1运行计算时间
;.2=1运行译码,.3=1设置状态
;.4闪耀位,=0灭,=1亮
KEYBZ DATA 21H ;键盘标志:.0(08H)=1去抖(KD),.1(09H)=1抬键(KT)
;.2(0AH)=1运行处理键盘子程序(KC)
NIAN DATA 30H ;年2000~2255
YUE DATA 31H ;月1~12
DAY DATA 32H ;日1~31
SHI DATA 33H ;时0~23
FEN DATA 34H ;分0~59
MIAO DATA 35H ;秒0~59
CISHU DATA 36H ;次数10MS->100
XYE DATA 37H ;显示页,=0秒,=1时分,=2月日,=3年
XWEI DATA 40H ;显示位,4位:0~3
SHAN DATA 41H ;闪耀位置,0~3,对应LED1~4
SHANS DATA 42H ;闪耀亮时间(循环次数)
TTL DATA 4EH
TTH DATA 4FH
BLED1 DATA 50H ;显示数据BCD
BLED2 DATA 51H
BLED3 DATA 52H
BLED4 DATA 53H
MLED1 DATA 54H ;显示数据译码
MLED2 DATA 55H
MLED3 DATA 56H
MLED4 DATA 57H
KEYP EQU P2 ;键盘接口
LEDD EQU P1 ;数码管段
LEDW EQU P0 ;数码管位
KD BIT 08H ;按键去抖
KT BIT 09H ;按键抬键
KC BIT 0AH ;运行键盘处理子程序
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -