?? lcd.asm
字號:
;************************************************
;lcd.asm LCD操作文件
;程序模快功能介紹:操作顯示畫面
;WR_LCD_TXT: 對文本區(qū)操作,寫入?yún)?shù),LCD_DISDA(顯示代碼),X_TXT,Y_TXT(坐標(biāo)),寫單個數(shù)據(jù).
;WR_LCD_FONT8: 對圖形區(qū)寫入8點陣漢字操作,寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
;WR_LCD_FONT16: 對圖形區(qū)寫入16點陣漢字操作,寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
;WR_LCD_FONT16F: 對圖形區(qū)寫入16點陣漢字操作,寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo)),反顯
;WR_LCD_FONT24: 對圖形區(qū)寫入24點陣漢字操作,寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
;WR_LCD_FONT32: 對圖形區(qū)寫入32點陣漢字操作,寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
;WR_LCD_MAXFRAME: 對圖形區(qū)寫入菜單框架,不帶參數(shù).
;WR_LCD_SAMFRAME: 寫功能菜單框架,參數(shù):CXL:1為FUNC1,2為FUNC2.......
;CLEAR_LCD_TXT: 清除文本框中顯示數(shù)據(jù)
;CLEAR_LCD_FILENUM: 清除顯示區(qū)中的文件序號
;CLEAR_LCD_PAGE: 清除顯示的翻頁信息
;CLEAR_LCD_ALLGRA: 清除所有在圖形中的顯示數(shù)據(jù)
;CLEAR_LCD_SAMFRAME: 清除功能按圖標(biāo)
;WR_LCD_LINEH: 畫水平線;參數(shù):BX:寫入所在行的首地址
;WR_LCD_GRA: 在圖形區(qū)連續(xù)寫入某一數(shù)據(jù),參數(shù):AXL:連續(xù)寫入的次數(shù).LCD_DISDA:需寫入的數(shù)據(jù).BX:要寫入的地址.
;WR_LCD_TABDATA: 參數(shù):AX:連續(xù)寫入的次數(shù).TAB_ADD:需寫入的數(shù)據(jù)表格的首地址.BX:要寫入的地址.
;WR_LCD_POPFRMAE: 寫彈出菜單框
;SAVE_DISPLAYDATA: 保存彈出菜單區(qū)域顯示數(shù)據(jù)
;LOAD_DISPLAYDATA: 加載彈出菜單區(qū)域顯示數(shù)據(jù)
;CLEAR_DISPLAYDATA: 清除彈出菜單區(qū)域
;CLEAR_POPMENU: 清除彈出菜單區(qū)域顯示數(shù)據(jù)
;display_z_font16: 正顯示所指定的數(shù)據(jù)(16 Pix)
;display_f_font16: 反顯示所指定的數(shù)據(jù)(16 Pix)
;display_z_font8: 正顯示所指定的數(shù)據(jù)(8 Pix)
;display_f_font8: 反顯示所指定的數(shù)據(jù)(8 Pix)
;clear_lineh: 清除水平線,參數(shù):BX:要清除所在行的首地址
;wr_lcd_txttab 將文本表格數(shù)據(jù)寫入
;************************************************
;-----------------WR LCD TXT -------------------
;寫入?yún)?shù),LCD_DISDA(顯示代碼),X_TXT,Y_TXT(坐標(biāo))
WR_LCD_TXT:
LDB AXL,Y_TXT
LDB BXL,#28H
MULUB AXL,BXL
LDB BXL,X_TXT
LDB BXH,#00H
ADD AX,BX ;計算在LCD RAM中的地址,存放在AX中
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,AXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,AXH
STB WR_DA,LCDDA_ADD[0] ;設(shè)定所要寫的地址
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;開始寫入顯示數(shù)據(jù)
NOP
STB LCD_DISDA,LCDDA_ADD[0] ;WRITE DISPLAY DATA TO LCD
RET
;--------------------WR CHINESE------------------
;寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
WR_LCD_FONT8:
LDB AXL,Y_GRA
LDB BXL,#28H
MULUB AXL,BXL
LDB BXL,X_GRA
LDB BXH,#00H
ADD AX,BX ;計算顯示偏移地址,存放在AX中
;第二顯示區(qū)的首地址(圖形)O4B0H
ADD AX,#04B0H
LDB WR_DA,#4FH ;設(shè)置LCD使光標(biāo)自動向下移動
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,AXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,AXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#10H ;計數(shù)器
WR_LCD_FONT8_1:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
STB LCD_DISDA,LCDDA_ADD[0] ;寫
DJNZ AXL,WR_LCD_FONT8_1 ;寫第一列-------------------
LDB WR_DA,#4CH
STB WR_DA,LCDCODE_ADD
RET
;--------------------WR CHINESE------------------
;寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
WR_LCD_FONT8F:
LDB AXL,Y_GRA
LDB BXL,#28H
MULUB AXL,BXL
LDB BXL,X_GRA
LDB BXH,#00H
ADD AX,BX ;計算顯示偏移地址,存放在AX中
;第二顯示區(qū)的首地址(圖形)O4B0H
ADD AX,#04B0H
LDB WR_DA,#4FH ;設(shè)置LCD使光標(biāo)自動向下移動
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,AXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,AXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#10H ;計數(shù)器
WR_LCD_FONT8F_1:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
NOTB LCD_DISDA
STB LCD_DISDA,LCDDA_ADD[0] ;寫
DJNZ AXL,WR_LCD_FONT8F_1 ;寫第一列-------------------
LDB WR_DA,#4CH
STB WR_DA,LCDCODE_ADD
RET
;--------------------WR CHINESE------------------
;寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
WR_LCD_FONT16:
LDB AXL,Y_GRA
LDB BXL,#28H
MULUB AXL,BXL
LDB BXL,X_GRA
LDB BXH,#00H
ADD AX,BX ;計算顯示偏移地址,存放在AX中
;第二顯示區(qū)的首地址(圖形)O4B0H
ADD AX,#04B0H
LD BX,AX ;保存操作地址,AX為第一列的地址(LCD RAM)
ADD BX,#1D ;第二列的地址,BX為第二列的地址(LCD RAM)
LDB WR_DA,#4FH ;設(shè)置LCD使光標(biāo)自動向下移動
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,AXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,AXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#10H ;計數(shù)器
WR_LCD_FONT16_1:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
STB LCD_DISDA,LCDDA_ADD[0] ;寫
DJNZ AXL,WR_LCD_FONT16_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] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#10H ;計數(shù)器
WR_LCD_FONT16_2:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
STB LCD_DISDA,LCDDA_ADD[0] ;寫
DJNZ AXL,WR_LCD_FONT16_2 ;寫第二列--------------------
LDB WR_DA,#4CH
STB WR_DA,LCDCODE_ADD[0] ;重新設(shè)置光標(biāo)的方向
RET
;--------------------WR CHINESE------------------
;寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
WR_LCD_FONT16F:
LDB AXL,Y_GRA
LDB BXL,#28H
MULUB AXL,BXL
LDB BXL,X_GRA
LDB BXH,#00H
ADD AX,BX ;計算顯示偏移地址,存放在AX中
;第二顯示區(qū)的首地址(圖形)O4B0H
ADD AX,#04B0H
LD BX,AX ;保存操作地址,AX為第一列的地址(LCD RAM)
ADD BX,#1D ;第二列的地址,BX為第二列的地址(LCD RAM)
LDB WR_DA,#4FH ;設(shè)置LCD使光標(biāo)自動向下移動
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,AXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,AXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#10H ;計數(shù)器
WR_LCD_FONT16F_1:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
NOTB LCD_DISDA
STB LCD_DISDA,LCDDA_ADD[0] ;寫
DJNZ AXL,WR_LCD_FONT16F_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] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#10H ;計數(shù)器
WR_LCD_FONT16F_2:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
NOTB LCD_DISDA
STB LCD_DISDA,LCDDA_ADD[0] ;寫
DJNZ AXL,WR_LCD_FONT16F_2 ;寫第二列--------------------
LDB WR_DA,#4CH
STB WR_DA,LCDCODE_ADD[0] ;重新設(shè)置光標(biāo)的方向
RET
;--------------------WR CHINESE------------------
;寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
WR_LCD_FONT24:
LDB AXL,Y_GRA
LDB BXL,#28H
MULUB AXL,BXL
LDB BXL,X_GRA
LDB BXH,#00H
ADD AX,BX ;計算顯示偏移地址,存放在AX中
;LD BX,#04B0H ;第二顯示區(qū)的首地址(圖形)
ADD AX,#04B0H
LD BX,AX ;保存操作地址,AX為第一列的地址(LCD RAM)
ADD BX,#1D ;BX為第二列的地址(LCD RAM)
LD CX,#1D
ADD CX,BX ;BX為第三列的地址(LCD RAM)
LDB WR_DA,#4FH ;設(shè)置LCD使光標(biāo)自動向下移動
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,AXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,AXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#18H ;計數(shù)器
WR_LCD_FONT24_1:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
STB LCD_DISDA,LCDDA_ADD[0] ;寫
DJNZ AXL,WR_LCD_FONT24_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] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#18H ;計數(shù)器
WR_LCD_FONT24_2:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
STB LCD_DISDA,LCDDA_ADD ;寫
DJNZ AXL,WR_LCD_FONT24_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] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#18H ;計數(shù)器
WR_LCD_FONT24_3:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
STB LCD_DISDA,LCDDA_ADD[0] ;寫
DJNZ AXL,WR_LCD_FONT24_3 ;寫第三列--------------------
LDB WR_DA,#4CH
STB WR_DA,LCDCODE_ADD[0] ;重新設(shè)置光標(biāo)的方向
RET
;--------------------WR CHINESE------------------
;寫入?yún)?shù),TAB_ADD(顯示代碼首地址),X_GRA,Y_GRA(坐標(biāo))
WR_LCD_FONT32:
LDB AXL,Y_GRA
LDB BXL,#28H
MULUB AXL,BXL
LDB BXL,X_GRA
LDB BXH,#00H
ADD AX,BX ;計算顯示偏移地址,存放在AX中
;LD BX,#04B0H ;第二顯示區(qū)的首地址(圖形)
ADD AX,#04B0H
LD BX,AX ;保存操作地址,AX為第一列的地址(LCD RAM)
ADD BX,#1D ;BX為第二列的地址(LCD RAM)
LD CX,#1D
ADD CX,BX ;CX為第三列的地址(LCD RAM)
LD DX,#1D
ADD DX,CX ;DX為第四列的地址(LCD RAM)
LDB WR_DA,#4FH ;設(shè)置LCD使光標(biāo)自動向下移動
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,#46H
STB WR_DA,LCDCODE_ADD[0]
LDB WR_DA,AXL
STB WR_DA,LCDDA_ADD[0]
LDB WR_DA,AXH
STB WR_DA,LCDDA_ADD[0] ;SET CURSOR
LDB WR_DA,#42H
STB WR_DA,LCDCODE_ADD[0] ;開始寫入顯示數(shù)據(jù)
LDB AXL,#32D ;計數(shù)器
WR_LCD_FONT32_1:
LDB LCD_DISDA,[TAB_ADD]+ ;取顯示數(shù)據(jù)
STB LCD_DISDA,LCDDA_ADD[0] ;寫
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -