📄 hex.asm
字号:
ZHLI2: MOV A,XSSS ;设置日期时间
XSSS1: CJNE A,#01H,XSSS2 ;设置年的高位
MOV XSSS,#02H
MOV A,YEAR
ANL A,#0FH
ADD A,52H
MOV YEAR,A
MOV DS1302ADDR,#8CH ;写入DS1302年的值的命令码
MOV DS1302DATA,YEAR ;写入DS1302年的值
LCALL WRITE
MOV A,53H ;显示年的值
LCALL DISPABLE
RET
XSSS2: CJNE A,#02H,XSSS3 ;设置年的低位
MOV XSSS,#03H
MOV A,YEAR
ANL A,#0F0H
ADD A,54H
MOV YEAR,A
MOV DS1302ADDR,#8CH
MOV DS1302DATA,YEAR
LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV A,#14H ;光标右移1位
LCALL ENABLE
RET
XSSS3: CJNE A,#03H,XSSS4 ;设置月的高位
MOV A,52H
CJNE A,#00H,MON1 ;月的高位只能是0或1,是其它值无效
JMP MONT
MON1: CJNE A,#10H,MON2
MONT: MOV A,MONTH
ANL A,#0FH
ADD A,52H
MOV MONTH,A
MOV DS1302ADDR,#88H ;写入DS1302月的值的命令码
MOV DS1302DATA,MONTH ;写入DS1302月的值
LCALL WRITE
MOV A,53H
LCALL DISPABLE ;显示月的值
MOV XSSS,#04H
MON2:RET
XSSS4: CJNE A,#04H,XSSS5 ;设置月的低位
MOV A,MONTH
ANL A,#0F0H
CJNE A,#00H,MJM1 ;判断月的高位为0还是1,为0时,月的低位不能为0,为0无效
MOV A,54H
CJNE A,#00H,MOT1
JMP MOOUT
MJM1: MOV A,54H
CJNE A,#00H,MJM2 ;月的高位为1,低位只能为0、1、2,为其它值无效
JMP MOT1
MJM2: CJNE A,#01H,MJM3
JMP MOT1
MJM3: CJNE A,#02H,MOOUT
MOT1: MOV A,MONTH
ANL A,#0F0H
ADD A,54H
MOV MONTH,A
MOV DS1302ADDR,#88H ;写入DS1302月的值的命令码
MOV DS1302DATA,MONTH ;写入DS1302月的值
LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV A,#14H
LCALL ENABLE ;光标右移1位
MOV XSSS,#05H
MOOUT: RET
XSSS5: CJNE A,#05H,XSSS6 ;设置日的高位
MOV A,52H
CJNE A,#00H,JSS61 ;日的高位只能是0、1、2、3,为其它值无效
JMP JSS64
JSS61: CJNE A,#10H,JSS62
JMP JSS64
JSS62: CJNE A,#20H,JSS63
JMP JSS64
JSS63: CJNE A,#30H,JSSOUT
JSS64: MOV A,DAY
ANL A,#0FH
ADD A,52H
MOV DAY,A
MOV DS1302ADDR,#86H ;写入DS1302日的值的命令码
MOV DS1302DATA,DAY ;写入DS1302月的值
LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV XSSS,#06H
JSSOUT: RET
XSSS6: CJNE A,#06H,XSSS7 ;设置日的低位
MOV A,DAY
ANL A,#0F0H
CJNE A,#00H,RI3 ;当日的高位为0,低位不能为0
MOV A,54H
CJNE A,#00H,SDDT
JMP DSOUT
RI3: CJNE A,#30H,SDDT ;当日的高位为3,低位只能为0、1
MOV A,54H
CJNE A,#00H,AFJ1
JMP SDDT
AFJ1: CJNE A,#01H, DSOUT
SDDT: MOV A,DAY
ANL A,#0F0H
ADD A,54H
MOV DAY,A
MOV DS1302ADDR,#86H
MOV DS1302DATA,DAY
LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV A,#0C0H ;跳到液晶显示器的第二行第一个地址显示时间
LCALL ENABLE
MOV XSSS,#07H
DSOUT: RET
XSSS7: CJNE A,#07H,XSSS8 ;设置时的高位
MOV A,52H
CJNE A,#00H,FGJ1 ;时的高位只能为0、1、2
JMP YUI
FGJ1: CJNE A,#10H,FGJ2
JMP YUI
FGJ2: CJNE A,#20H,YUOUT
YUI: MOV A,HR
ANL A,#0FH
ADD A,52H
MOV HR,A
MOV DS1302ADDR,#84H ;写入DS1302时的值的命令码
MOV DS1302DATA,HR ;写入DS1302时的值
LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV XSSS,#08H
YUOUT: RET
XSSS8: CJNE A,#08H,XSSS9 ;设置时的低位
MOV A,DAY
ANL A,#0F0H
CJNE A,#20H,LYU ;当时的高位为2,低位只能是0、1、2、3,为其它值无效
MOV A,54H
CJNE A,#00H,LKK1
JMP LYU
LKK1: CJNE A,#01H,LKK2
JMP LYU
LKK2: CJNE A,#02H,LKK3
JMP LYU
LKK3: CJNE A,#03H,LKK4
LYU: MOV A,HR
ANL A,#0F0H
ADD A,54H
MOV HR,A
MOV DS1302ADDR,#84H ;写入DS1302时的值的命令码
MOV DS1302DATA,HR ;写入DS1302时的值
LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV A,#14H ;光标右移1位
LCALL ENABLE
MOV XSSS,#09H
LKK4: RET
XSSS9: CJNE A,#09H,XSSSA ;设置分的高位
MOV A,52H
CJNE A,#00H,TYT1 ;分的高位只能是0、1、2、3、4、5
JMP WER
TYT1: CJNE A,#10H,TYT2
JMP WER
TYT2: CJNE A,#20H,TYT3
JMP WER
TYT3: CJNE A,#30H,TYT4
JMP WER
TYT4: CJNE A,#40H,TYT5
JMP WER
TYT5: CJNE A,#50H,TYTOUT
WER: MOV A,MIN
ANL A,#0FH
ADD A,52H
MOV MIN,A
MOV DS1302ADDR,#82H ;写入DS1302分的值的命令码
MOV DS1302DATA, MIN ;写入DS1302分的值
LCALL WRITE
MOV A,53H
LCALL DISPABLE ;显示输出分的值
MOV XSSS,#0AH
TYTOUT: RET
XSSSA: CJNE A,#0AH,XSSSB ;设置分的低位
MOV XSSS,#0BH
MOV A,MIN
ANL A,#0F0H
ADD A,54H
MOV MIN,A
MOV DS1302ADDR,#82H
MOV DS1302DATA, MIN
LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV A,#14H ;光标右移1位
LCALL ENABLE
RET
XSSSB: CJNE A,#0BH,XSSSC ;设置秒的高位
MOV A,52H
CJNE A,#00H,MIAO1 ;秒的高位只能是0、1、2、3、4、5
JMP MIAOR
MIAO1: CJNE A,#10H,MIAO2
JMP MIAOR
MIAO2: CJNE A,#20H,MIAO3
JMP MIAOR
MIAO3: CJNE A,#30H,MIAO4
JMP MIAOR
MIAO4: CJNE A,#40H,MIAO5
JMP MIAOR
MIAO5: CJNE A,#50H,MIAOUT
MIAOR: MOV A,SEC
ANL A,#0FH
ADD A,52H
MOV SEC,A
; MOV DS1302ADDR,#80H ;写入DS1302秒的值的命令码
; MOV DS1302DATA, SEC ;写入DS1302秒的值
; LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV XSSS,#0CH
MIAOUT:RET
XSSSC: CJNE A,#0CH,XSSSD ;设置秒的低位
MOV XSSS,#0DH
MOV A,SEC
ANL A,#0F0H
ADD A,54H
MOV SEC,A
; MOV DS1302ADDR,#80H
; MOV DS1302DATA, SEC
; LCALL WRITE
MOV A,53H
LCALL DISPABLE
MOV A,#0CBH ;星期显示的地址
LCALL ENABLE
RET
XSSSD: MOV XSSS,#01H
MOV A,54H
INC A
MOV WEEK,A
MOV DS1302ADDR,#8AH ;写入DS1302星期的值的命令码
MOV DS1302DATA, WEEK ;写入DS1302星期的值
LCALL WRITE
LCALL WEEKCHL ;调用星期处理子程序
LCALL DISPWEEK ;调用星期显示子程序
MOV A,#82H ;跳到年地址的高位
LCALL ENABLE
RET
DELAY: MOV R6,#14H ;延时10MS
DDF: MOV R5,#248
DJNZ R5,$
DJNZ R6,DDF
RET
;自定义字库
WENZI: MOV A,#40H ;位6、7为表示字符发生器地址设置,位3、4、5表示字符存放在CGRAM地址低三位
LCALL ENABLE ;定义年字,存于00H
MOV A,#08H
LCALL DISPABLE
MOV A,#41H
LCALL ENABLE
MOV A,#0FH
LCALL DISPABLE
MOV A,#42H
LCALL ENABLE
MOV A,#12H
LCALL DISPABLE
MOV A,#43H
LCALL ENABLE
MOV A,#0FH
LCALL DISPABLE
MOV A,#44H
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#45H
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#46H
LCALL ENABLE
MOV A,#02H
LCALL DISPABLE
MOV A,#47H
LCALL ENABLE
MOV A,#00H
LCALL DISPABLE
MOV A,#48H ;定义月字,存于01H
LCALL ENABLE
MOV A,#0FH
LCALL DISPABLE
MOV A,#49H
LCALL ENABLE
MOV A,#09H
LCALL DISPABLE
MOV A,#4AH
LCALL ENABLE
MOV A,#0FH
LCALL DISPABLE
MOV A,#4BH
LCALL ENABLE
MOV A,#09H
LCALL DISPABLE
MOV A,#4CH
LCALL ENABLE
MOV A,#0FH
LCALL DISPABLE
MOV A,#4DH
LCALL ENABLE
MOV A,#09H
LCALL DISPABLE
MOV A,#4EH
LCALL ENABLE
MOV A,#13H
LCALL DISPABLE
MOV A,#4FH
LCALL ENABLE
MOV A,#00H
LCALL DISPABLE
MOV A,#50H ;定义日字,存于02H
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#51H
LCALL ENABLE
MOV A,#11H
LCALL DISPABLE
MOV A,#52H
LCALL ENABLE
MOV A,#11H
LCALL DISPABLE
MOV A,#53H
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#54H
LCALL ENABLE
MOV A,#11H
LCALL DISPABLE
MOV A,#55H
LCALL ENABLE
MOV A,#11H
LCALL DISPABLE
MOV A,#56H
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#57H
LCALL ENABLE
MOV A,#00H
LCALL DISPABLE
MOV A,#58H ;定义分字,存于03H
LCALL ENABLE
MOV A,#0CH
LCALL DISPABLE
MOV A,#59H
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#5AH
LCALL ENABLE
MOV A,#11H
LCALL DISPABLE
MOV A,#5BH
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#5CH
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#5DH
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#5EH
LCALL ENABLE
MOV A,#1AH
LCALL DISPABLE
MOV A,#5FH
LCALL ENABLE
MOV A,#00H
LCALL DISPABLE
MOV A,#60H ;定义禾字,存于04H
LCALL ENABLE
MOV A,#0EH
LCALL DISPABLE
MOV A,#61H
LCALL ENABLE
MOV A,#04H
LCALL DISPABLE
MOV A,#62H
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#63H
LCALL ENABLE
MOV A,#0EH
LCALL DISPABLE
MOV A,#64H
LCALL ENABLE
MOV A,#0EH
LCALL DISPABLE
MOV A,#65H
LCALL ENABLE
MOV A,#11H
LCALL DISPABLE
MOV A,#66H
LCALL ENABLE
MOV A,#04H
LCALL DISPABLE
MOV A,#67H
LCALL ENABLE
MOV A,#00H
LCALL DISPABLE
MOV A,#68H ;定义少字,存于05H
LCALL ENABLE
MOV A,#04H
LCALL DISPABLE
MOV A,#69H
LCALL ENABLE
MOV A,#04H
LCALL DISPABLE
MOV A,#6AH
LCALL ENABLE
MOV A,#0EH
LCALL DISPABLE
MOV A,#6BH
LCALL ENABLE
MOV A,#15H
LCALL DISPABLE
MOV A,#6CH
LCALL ENABLE
MOV A,#02H
LCALL DISPABLE
MOV A,#6DH
LCALL ENABLE
MOV A,#04H
LCALL DISPABLE
MOV A,#6EH
LCALL ENABLE
MOV A,#18H
LCALL DISPABLE
MOV A,#6FH
LCALL ENABLE
MOV A,#00H
LCALL DISPABLE
MOV A,#70H ;定义开字,存于06H
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#71H
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#72H
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#73H
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#74H
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#75H
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#76H
LCALL ENABLE
MOV A,#12H
LCALL DISPABLE
MOV A,#77H
LCALL ENABLE
MOV A,#00H
LCALL DISPABLE
MOV A,#78H ;定义关字,存于07H
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#79H
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#7AH
LCALL ENABLE
MOV A,#04H
LCALL DISPABLE
MOV A,#7BH
LCALL ENABLE
MOV A,#04H
LCALL DISPABLE
MOV A,#7CH
LCALL ENABLE
MOV A,#1FH
LCALL DISPABLE
MOV A,#7DH
LCALL ENABLE
MOV A,#0AH
LCALL DISPABLE
MOV A,#7EH
LCALL ENABLE
MOV A,#11H
LCALL DISPABLE
MOV A,#7FH
LCALL ENABLE
MOV A,#00H
LCALL DISPABLE
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -