📄 lcd.asm
字号:
DJNZ AXL,WR_LCD_FONT32_1 ;写第一列-------------------
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,BXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,BXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;开始写入显示数据
LDB AXL,#32D ;计数器
WR_LCD_FONT32_2:
LDB LCD_DISDA,[TAB_ADD]+ ;取显示数据
STB LCD_DISDA,LCDDA_ADD ;写
DJNZ AXL,WR_LCD_FONT32_2 ;写第二列--------------------
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,CXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,CXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;开始写入显示数据
LDB AXL,#32D ;计数器
WR_LCD_FONT32_3:
LDB LCD_DISDA,[TAB_ADD]+ ;取显示数据
STB LCD_DISDA,LCDDA_ADD[0] ;写
DJNZ AXL,WR_LCD_FONT32_3 ;写第三列--------------------
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,DXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,DXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;开始写入显示数据
LDB AXL,#32D ;计数器
WR_LCD_FONT32_4:
LDB LCD_DISDA,[TAB_ADD]+ ;取显示数据
STB LCD_DISDA,LCDDA_ADD[0] ;写
DJNZ AXL,WR_LCD_FONT32_4 ;写第三列--------------------
LDB WR_DA,#4CH
STB WR_DA,LCDCODE_ADD[0] ;重新设置光标的方向
RET
;------------------WR MAX FRAME------------------
;写菜单框
WR_LCD_MAXFRAME:
LDB LCD_DISDA,#0FFH ;DISPLAY DATA
LDB AXL,#20H ;计数器24D
LD BX,#0501H
CALL WR_LCD_GRA ;WR LINE ADD
LDB AXL,#20H ;计数器24D
LD BX,#0529H ;WR LINE ADD
CALL WR_LCD_GRA
LDB AXL,#20H ;计数器24D
LD BX,#0911H+80
CALL WR_LCD_GRA ;WR LINE ADD
LDB AXL,#20H ;计数器24D
LD BX,#0939H+80
CALL WR_LCD_GRA ;WR LINE ADD
LDB AXL,#20H ;计数器24D
LD BX,#2991H+80
CALL WR_LCD_GRA ;WR LINE ADD
;--------------
LDB WR_DA,#4FH
STB WR_DA,LCDCODE_ADD[0]
LDB AXL,#02H
LDB LCD_DISDA,#1FH
LD BX,#0500H
CALL WR_LCD_GRA
LDB AXL,#26D
LDB LCD_DISDA,#10H
CALL WR_LCD_GRA2
LDB LCD_DISDA,#1FH
STB LCD_DISDA,LCDDA_ADD[0]
STB LCD_DISDA,LCDDA_ADD[0]
LDB AXL,#204D+2
LDB LCD_DISDA,#10H
CALL WR_LCD_GRA2
LDB LCD_DISDA,#1FH
STB LCD_DISDA,LCDDA_ADD[0] ;-----
LDB AXL,#02H
LDB LCD_DISDA,#0FEH
LD BX,#0521H
CALL WR_LCD_GRA
LDB AXL,#26D
LDB LCD_DISDA,#02H
CALL WR_LCD_GRA2
LDB LCD_DISDA,#0FEH
STB LCD_DISDA,LCDDA_ADD[0]
STB LCD_DISDA,LCDDA_ADD[0]
LDB AXL,#204D+2
LDB LCD_DISDA,#02H
CALL WR_LCD_GRA2
LDB LCD_DISDA,#0FEH
STB LCD_DISDA,LCDDA_ADD[0]
LDB WR_DA,#4CH
STB WR_DA,LCDCODE_ADD[0]
RET
;------------------WR SAMLL FRAME----------------
;写功能按键指示框,参数:CXL=1为FUNC1,2为FUNC2.....
WR_LCD_SAMFRAME:
CMPB CXL,#01H
JNE WR_LCD_SAMFRAME1
LD BX,#0523H ;FUNC1 每个地址加0640H,将得到下一个功能按键的显示框地址
LD DX,#0A9BH-50H
LD EX,#0AC3H-50H
LD FX,#0522H
LD GX,#0527H
JMP WR_LCD_SAMFRAME6
WR_LCD_SAMFRAME1:
CMPB CXL,#02H
JNE WR_LCD_SAMFRAME2
LD BX,#0B63H ;FUNC2
LD DX,#10DBH-50H
LD EX,#1103H-50H
LD FX,#0B62H
LD GX,#0B67H
JMP WR_LCD_SAMFRAME6
WR_LCD_SAMFRAME2:
CMPB CXL,#03H
JNE WR_LCD_SAMFRAME3
LD BX,#11A3H ;FUNC3
LD DX,#171BH-50H
LD EX,#1743H-50H
LD FX,#11A2H
LD GX,#11A7H
JMP WR_LCD_SAMFRAME6
WR_LCD_SAMFRAME3:
CMPB CXL,#04H
JNE WR_LCD_SAMFRAME4
LD BX,#17E3H
LD DX,#1D5BH-50H ;FUNC4
LD EX,#1D83H-50H
LD FX,#17E2H
LD GX,#17E7H
JMP WR_LCD_SAMFRAME6
WR_LCD_SAMFRAME4:
CMPB CXL,#05H
JNE WR_LCD_SAMFRAME5
LD BX,#1E23H
LD DX,#239BH-50H ;FUNC5
LD EX,#23C3H-50H
LD FX,#1E22H
LD GX,#1E27H
JMP WR_LCD_SAMFRAME6
WR_LCD_SAMFRAME5:
LD BX,#2463H
LD DX,#29DBH-50H
LD EX,#2A03H-50H
LD FX,#2462H
LD GX,#2467H
WR_LCD_SAMFRAME6:
LDB AXL,#04H
LDB LCD_DISDA,#0FFH
CALL WR_LCD_GRA
LD BX,DX
LDB AXL,#04H
LDB LCD_DISDA,#0FFH
CALL WR_LCD_GRA
LD BX,EX
LDB AXL,#04H
LDB LCD_DISDA,#0FFH
CALL WR_LCD_GRA
LDB WR_DA,#4FH
STB WR_DA,LCDCODE_ADD
;-----------------------------------
LD BX,FX
LDB AXL,#01H
LDB LCD_DISDA,#07H
CALL WR_LCD_GRA
LDB LCD_DISDA,#04H
LDB AXL,#32D
CALL WR_LCD_GRA2
LDB LCD_DISDA,#07H
STB LCD_DISDA,LCDDA_ADD
STB LCD_DISDA,LCDDA_ADD
LDB BX,GX
LDB AXL,#01H
LDB LCD_DISDA,#0E0H
CALL WR_LCD_GRA
LDB LCD_DISDA,#30H
STB LCD_DISDA,LCDDA_ADD
LDB AXL,#31D
LDB LCD_DISDA,#38H
CALL WR_LCD_GRA2
LDB LCD_DISDA,#0F8H
STB LCD_DISDA,LCDDA_ADD
STB LCD_DISDA,LCDDA_ADD
LDB WR_DA,#4CH
STB WR_DA,LCDCODE_ADD
RET
;------------------CLEAR TXT--------------------
;清除文本区显示内容
CLEAR_LCD_TXT:
LDB LCD_DISDA,#00H
LDB AXL,#0FFH
LD BX,#0000H ;TXT BEGIN ADD
CALL WR_LCD_GRA
LDB AXL,#0FFH
CALL WR_LCD_GRA2
LDB AXL,#0FFH
CALL WR_LCD_GRA2
LDB AXL,#0FFH
CALL WR_LCD_GRA2
LDB AXL,#180D
CALL WR_LCD_GRA2
RET
;---------------CLEAR FILE NUM-----------------
;清除菜单显示的档案序号
CLEAR_LCD_FILENUM:
LDB LCD_DISDA,#00H
LDB AXL,#02H
LD BX,#71D
CALL WR_LCD_GRA
RET
;-----------CLEAR PAGE INPORMATION------------
;清除翻页信息指示
CLEAR_LCD_PAGE:
LDB LCD_DISDA,#00H
LDB AXL,#07D
LD BX,#0106D
CALL WR_LCD_GRA
RET
;-----------CLEAR ALL GRAPH DATA----------------
;清除所有图形区中的显示数据
CLEAR_LCD_ALLGRA:
LD AX,#2580H
LDB LCD_DISDA,#00H
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,#0B0H
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,#04H
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;开始写入显示数据
CLEAR_LCD_ALLGRA1:
STB LCD_DISDA,LCDDA_ADD[0]
NOP
DJNZW AX,CLEAR_LCD_ALLGRA1
RET
;---------------CLEAR FUNC FRAME----------------
;清除功能按键显示区
CLEAR_LCD_SAMFRAME:
LDB WR_DA,#4FH
STB WR_DA,LCDCODE_ADD ;SET CURSOR DOWN
LDB LCD_DISDA,#00H
LDB AXL,#75;#235D
LD BX,#0522H
CALL WR_LCD_GRA
LDB AXL,#75;#235D
LD BX,#0523H
CALL WR_LCD_GRA
LDB AXL,#75;#235D
LD BX,#0524H
CALL WR_LCD_GRA
LDB AXL,#75;#235D
LD BX,#0525H
CALL WR_LCD_GRA
LDB AXL,#75;#235D
LD BX,#0526H
CALL WR_LCD_GRA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -