📄 12864.asm
字号:
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#0A0H ;空1格日个位
LCALL wdatsz
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#64 ;写入日
LCALL wdatnyr
m0: lcall xszsfm
lcall xsznyr
lcall xszxq
lcall zh
lcall dz
SJMP m0
;***************************************************显示星期子程序<占用区0>
xszxq: push dph ;保护现场
push dpl
push acc
push psw
clr psw.3 ;进入第0组工作寄存器
clr psw.4
CLR CS2
SETB CS1
MOV 33H,#0C0H ;设行单元初值
MOV 34H,#0BAH ;设页单元初值
MOV 35H,#58H ;设列单元初值
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV A,25H
CJNE A,#1,LOOP16
MOV R1,#0
LCALL Wxqsz
LJMP xxxx
LOOP16: CJNE A,#2,LOOP17
MOV R1,#24
LCALL Wxqsz
LJMP xxxx
LOOP17: CJNE A,#3,LOOP18
MOV R1,#48
LCALL Wxqsz
LJMP xxxx
LOOP18: CJNE A,#4,LOOP19
MOV R1,#72
LCALL Wxqsz
LJMP xxxx
LOOP19: CJNE A,#5,LOOP20
MOV R1,#96
LCALL Wxqsz
LJMP xxxx
LOOP20: CJNE A,#6,LOOP21
MOV R1,#120
LCALL Wxqsz
LJMP xxxx
LOOP21: MOV R1,#144
LCALL Wxqsz
xxxx: pop psw ;回复现场
pop acc
pop dph
pop dpl
RET
;***************************************************显示月日子程序<占用区0>
xsznyr: push dph ;保护现场
push dpl
push acc
push psw
clr psw.3 ;进入第0组工作寄存器
clr psw.4
CLR CS1
SETB CS2
MOV 33H,#0C0H ;设行单元初值
MOV 34H,#0B8H ;设页单元初值
MOV 35H,#78H ;设列单元初值
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV A,27H
ANL A,#0F0h
CJNE A,#0,LOOP10
MOV R1,#0A0H
LCALL WDATSZ
SJMP LOOP11 ;月十位为0时消隐
LOOP10: MOV R1,A ;否则月十位输出数字
LCALL WDATSZ
LOOP11: CLR CS2
SETB CS1
MOV 33H,#0C0H ;设行单元初值
MOV 34H,#0B8H ;设页单元初值
MOV 35H,#40H ;设列单元初值
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV A,27H
ANL A,#0Fh
SWAP A
MOV R1,A ;写月个位
LCALL WDATSZ
MOV 33H,#0C0H ;设行单元初值
MOV 34H,#0B8H ;设页单元初值
MOV 35H,#58H ;设列单元初值
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV A,26H
ANL A,#0F0h
CJNE A,#0,LOOP12
MOV R1,#0A0H
LCALL WDATSZ
SJMP LOOP13 ;日十位为0时消隐
LOOP12: MOV R1,A ;否则日十位输出数字
LCALL WDATSZ
LOOP13: MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV A,26H
ANL A,#0Fh
SWAP A
MOV R1,A ;写日个位
LCALL WDATSZ
pop psw ;回复现场
pop acc
pop dph
pop dpl
RET
;***************************************************显示时分秒子程序<占用区0>
xszsfm: push dph ;保护现场
push dpl
push acc
push psw
clr psw.3 ;进入第0组工作寄存器
clr psw.4
CLR CS1
SETB CS2
MOV 33H,#0C0H ;设行单元初值
MOV 34H,#0BCH ;设页单元初值
MOV 35H,#60H ;设列单元初值
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV A,2fh ;写入时十位
swap A
MOV R1,A
LCALL WDATSZ
MOV com,33H ;重新设行单元
LCALL Wcom
MOV com,34H ;重新设页单元
LCALL Wcom
MOV com,35H ;重新设列单元
LCALL Wcom
MOV A,2eH
swap A
MOV R1,A ;写入时个位
LCALL WDATSZ
MOV com,33H ;重新设行单元
LCALL Wcom
MOV com,34H ;重新设页单元
LCALL Wcom
MOV com,35H ;重新设列单元
LCALL Wcom
MOV R1,#0B0H ;写入冒号:
LCALL WDATSZ
MOV com,33H ;重新设行单元
LCALL Wcom
MOV com,34H ;重新设页单元
LCALL Wcom
MOV com,35H ;重新设列单元
LCALL Wcom
MOV A,2dh ;写入分十位
swap A
MOV R1,A
LCALL WDATSZ
SETB CS1
CLR CS2
MOV 33H,#0C0H ;设行单元初值
MOV 34H,#0BCH ;设页单元初值
MOV 35H,#40H ;设列单元初值
MOV com,33H ;重新设行单元
LCALL Wcom
MOV com,34H ;重新设页单元
LCALL Wcom
MOV com,35H ;重新设列单元
LCALL Wcom
MOV A,2cH ;写入分个位
swap A
MOV r1,A
LCALL WDATSZ
MOV com,33H ;重新设行单元
LCALL Wcom
MOV com,34H ;重新设页单元
LCALL Wcom
MOV com,35H ;重新设列单元
LCALL Wcom
MOV R1,#0B0H ;写入冒号:
LCALL WDATSZ
MOV com,33H ;重新设行单元
LCALL Wcom
MOV com,34H ;重新设页单元
LCALL Wcom
MOV com,35H ;重新设列单元
LCALL Wcom
MOV A,2bH ;写入秒十位
swap A
MOV R1,A
LCALL WDATSZ
MOV com,33H ;重新设行单元
LCALL Wcom
MOV com,34H ;重新设页单元
LCALL Wcom
MOV com,35H ;重新设列单元
LCALL Wcom
MOV A,2aH
swap A
MOV R1,A ;写入秒个位
LCALL WDATSZ
pop psw ;回复现场
pop acc
pop dph
pop dpl
RET
;***************************************************写屏wxqsz12X12
Wxqsz: push dph ;保护现场
push dpl
push acc
push psw
MOV R2,#12 ;写汉字的上半部分
LOOP14: MOV A,R1
MOV DPTR,#TABxqsz
MOVC A,@A+DPTR
MOV DAT,A
CALL WDAT
INC R1
DJNZ R2,LOOP14
INC 34H ;移到下一页
MOV com,34h
LCALL Wcom
MOV com,35h
LCALL Wcom
MOV R2,#12 ;写汉字的下半部分
LOOP15: MOV A,R1
MOVC A,@A+DPTR
MOV DAT,A
CALL WDAT
INC R1
DJNZ R2,LOOP15
DEC 34H ;再退回到上一页
MOV com,34H
LCALL Wcom
MOV A,35H
ADD A,#12 ;加当前字的宽度
MOV 35H,A
pop psw ;回复现场
pop acc
pop dph
pop dpl
RET
;***************************************************写屏lxazz12X12
lxazzz: PUSH Acc
MOV R2,#12 ;写汉字的上半部分
LOOP8: MOV A,R1
MOV DPTR,#lxazz
MOVC A,@A+DPTR
MOV DAT,A
CALL WDAT
INC R1
DJNZ R2,LOOP8
INC 34H ;移到下一页
MOV com,34h
LCALL Wcom
MOV com,35h
LCALL Wcom
MOV R2,#12 ;写汉字的下半部分
LOOP9: MOV A,R1
MOVC A,@A+DPTR
MOV DAT,A
CALL WDAT
INC R1
DJNZ R2,LOOP9
DEC 34H ;再退回到上一页
MOV com,34H
LCALL Wcom
MOV A,35H
ADD A,#12 ;加当前字的宽度
MOV 35H,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -