微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 单片机和图形液晶显示器接口应用技术

单片机和图形液晶显示器接口应用技术

时间:08-30 来源:互联网 点击:
[/table] WAIT11: MOVX A,@DPTR ;/* 读状态字 */

JB ACC.7,WAIT11 ;/*判忙标志BF,如BF=1 忙,等待*/

MOV DPTR,#DWADR1 ;/*写数据字口地址*/

MOV A,DATA ;/*取数据/

MOVX @DPTR,A ;/*写数据*/

RET

(3)右半屏写指令子程序WR_CMD2 和右半屏写数据子程序WR_DATA2 的编制同左半屏子程序相同,只是对应口地址不同。

8X16 字符显示子程序:MGLS12864 液晶显示屏由二片HD61202 控制,LCD 显示中应尽量避免一个字符一半在左半屏显示,另一半在右半屏显示的情况。设列地址寄存器为COLUMN,页地址寄存器为PAGE,要显示的字符代码寄存器为ASCIICODE,W78E58 内RAM28H-RAM37H 共16 个字节存放8×16 的点阵数据,生成的8×16 点阵库文件存放在单片机W78E58 存储器中的首地址定义为ASCII_DOT816。

DISP_ASCII816: MOV DPTR,#ASCII_DOT816 ;8×16 点阵库首地址

MOV A,ASCIICODE ;显示字符代码ASCIICODE

MOV B,#16 ;每个字符点阵占16 个字节

MUL AB ;计算显示字符在字库的首地址

ADD A,DPL

MOV DPL,A

MOV A,DPH

ADDC A,B

MOV DPH,A

;MOV R0,#28H ;将点阵数据放到RAM28H-RAM37H

MOV R2,#00H

LP_MOVDOT16: MOV A,R2

MOVC A,@A+DPTR

MOV @R0,A ;如要将字符反显(黑底白字),则读出点

INC R0 ;阵数据后求反放入单片机的RAM 中

INC R2

CJNE R2,#16,LP_MOVDOT16



PUSH COLUMN

MOV A,COLUMN ;显示列数COLUMN 是否在右半屏

CJNE A,#64,ASCII_IF64

[table]
ASCII_IF64: JNC ASCII_YGE64

MOV DPTR,#CWADR1 ;在左半屏时,选择左半屏写指令代码地址

CLR FIRST0_SECOND1_BIT ;左半屏列数标志BIT=0

SJMP ALL_COLUMN

ASCII_YGE64: CLR C

SUBB A,#64

MOV COLUMN,A

MOV DPTR,#CWADR2 ;在右半屏时,选择右半屏写指令代码地址

SETB FIRST0_SECOND1_BIT ;右半屏列数标志BIT=1

ALL_COLUMN: MOV A,PAGE

ADD A,#10111000B ;设置页地址命令

MOVX @DPTR,A

MOV A,COLUMN ;设置列地址命令

ADD A,#01000000B

MOVX @DPTR,A

MOV DPTR,DWADR1 ;根据左右半屏列数标志,选择写显示数据地址

JNB FIRST0_SECOND1_BIT,ALLMOV1

MOV DPTR,DWADR2

ALLMOV1: MOV R0,#28H

MOV_8BYTE1: MOV A,@R0

MOVX @DPTR,A ;写显示数据

NOP

INC R0

CJNE R0,#30H,MOV_8BYTE1

MOV DPTR,#CWADR1

JNB FIRST0_SECOND_BIT,ALLMOV2

MOV DPTR,#CWADR2

ALLMOV2: MOV A,PAGE

INC A ;页地址加1

ADD A,#10111000B

MOVX @DPTR,A ;设置页地址命令

MOV A,COLUMN ;设置列地址命令

ADD A,#01000000B

MOVX @DPTR,A

MOV DPTR,DWADR1;根据左右半屏列数标志,选择写显示数据地址

JNB FIRST0_SECOND1_BIT,ALLMOV3

MOV DPTR,DWADR2

ALLMOV3: MOV R0,#30H

MOV_8BYTE2: MOV A,@R0

MOVX @DPTR,A ;写显示数据

INC R0

CJNE R0,#38H,MOV_8BYTE2



POP COLUMN

RET

16×16 汉字显示子程序:16×16 汉字显示子程序与8X16 字符显示子程序基本相同。不同在于每次写32 字

节显示数据,可定义W78E58 内RAM28H-RAM47H 共32 个字节存放16×16 的点阵数据,生成的16×16 点阵库文件存放在单片机W78E58 存储器中的首地址定义为HZK_DOT16X16。具体程序略,读者如需要可来函索取。

结语

本文在介绍液晶显示模块与单片机接口的同时,采用了新颖的改造方案以解决应用中的问题。由于节省了单片机口线,使系统资源得到了充分利用。可显示汉字、字符和图形,使人机界面更为美观、易读。其它如8×8 西文点阵字库及图形的建立和显示可参照上面介绍的方法来编写程序。由于各种液晶显示模块的接口基本相同,因此本文所讨论的内容也适用于其它型号的液晶显示模块。液晶显示较其它显示终端有许多优点:功耗低且字型美观、可用集成电池供电,便于携带等。相信它将得到越来越广泛的使用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top