新闻中心

EEPW首页 > 光电显示 > 设计应用 > 图形点阵式液晶显示模块的控制技术

图形点阵式液晶显示模块的控制技术

作者:时间:2006-05-07来源:网络收藏

摘要:分析了图形点阵式液晶显示模块LCD240128A的内部结构及工作原理,结合AT89S58单片机给出了MPU与液晶显示模块LCD240128的接口电路,并根据LCD240128A模块中T6963A液晶驱动器的文本与图形两种模式的指令特性,给出了相应的控制软件。

本文引用地址:http://www.amcfsurvey.com/article/225766.htm

关键词:液晶 微控制器 显示器 LCD240128A AT89S58 T6963A

1 模块简介

图形点阵式液晶显示模块具有尺寸小、功耗小、可靠性高、成本低等优点,可显示各种图像与文本信息,因此在电子仪器中得到广泛的应用。

LCD240128A是热致液晶STN型图形点阵式显示模块,它由STN型液晶板、液晶显示控制器、液晶驱动器、背光板等组成,图1怕示是LCD240128A模块的结构框图。它的整屏尺寸为114×104mm,有240×128点,可显示16点阵汉字15×8个,亦可显示各种图形。因此,在智能式电子仪器中,LCD240128A可用来作为显示器,以显示各种图形和文本信息。LCD240128A液晶模块内有T6963A液晶驱动控制器,该模块的外部接口引脚定义如表1所列。

T6863A内部含有共128字节的字符发生器CGROM,可外接8k(最大为128k)字节的RAM作为外部的显示缓冲区及字符发生器CGRAM,并允许MPU访问显示缓冲区,甚至还可进行位操作。

根据T6963A的特性设计出的LCD240128A模块与AT89S58单片机的接口电路如图2所示。

在图2中,AT89S58单片机作为控制液晶模块MPU,扩展在16k字节EPROM27128用于存放16点阵汉字的字模数据,AT89S58与外部数据及指令的效换采和8255作为I/O通道。

从图2可以看出,液晶模块的控制指令端口为4FFFH,数据端口为4FFEH,可通过电位器P1来调整液晶的显示效果。

2 控制命令

为了更好地阐述LCD240128A的控制方法,这里先介绍T6963A的指令。

表1 LCD240128A的引脚定义

引脚号 信 号 意 义
1 FG 框架地。
2 VSS 信号地,为0V。
3 VDD 模块电源输入端,为+5V±10%
4 VEE LCD工作电压输入端。
5 WR 写信号。
6 RD 读信号。
7 CE 片选信号。
8 C/D “1”为指令码,“0”为数据码。
9 N.C 悬空脚
10 RESET 复位信号
11~18 DB0~DB7 数据位18
19 F.S 点阵模式选择。“1”选择5×8点阵,“0”选择8×8点阵。
20 VOUT -10V LCD驱动电压输出端。

T6963A的指令格式为:数据1+数据2+指令字节,但是,有的指令只含有一个数据或根本就没有数据。而LCD240128A模块选择的是单屏结构、每行最大为80个字节、总行数为16的显示模式。

为了确保每条指令的正确执行,有必要在执行指令前,先分析一下模块的状态字:

STATE:MOV DPTR,#40001H

MOVX A,@DPTR

RET

此时,累加器A中的每位所代表的内容如下:

ACC.0:指令读写状态,1表示已准备好,0表示忙

ACC.1:指令读写状态,1表示已准备好,0表示忙

ACC.2:数据自动读状态,1表示已准备好,0表示忙

ACC.3:数据自动写状态,1表示已准备好,0表示忙

ACC.4:未用

ACC.5:控制器运行特性检测,1表示可以,0表示不可;

ACC.6:屏读/拷贝状态,1表示出错,0表示正确;

ACC.7:闪烁状态,1表示正常,0表示不正常;

2.1 地址指令设置命令

地址指令设置命令主要包括如下三种设置:

(1)设置光标位置:D1+D2+21H;

其中D1为光标离液晶屏左上角的横向字符数;D2为光标离液晶屏左上角的纵向字符数。

(2_设置CGRAM的位置:D1+00H+22H;

此指令中D1的有效位为低5位,用于设置2kCGRAM在8k显示RAM中的高5位地址,中间8位为字符代码,低3位为字符8×8点阵行计数值。

(3)设置当前要操作的单元:D1+D2+24H

其中D1为地址的低字节,D2为高字节。

2.2 显示区域设置命令

显示区域设置命令主要是对文本区首址和每行字符数以及图形区的首址和每行字符数进行设置。

(1)设置文本显示区的首址:D1+D2+40H

其中D1为低字节,D2为高字节,地址对应于显示屏左上角的字符位。

(2)设置文本区的每行字符数:D1+00H+41H

(3)设置图形区首址:D1+D2+42H

其中D1为地址的低字节,D2为高字节。

(4)设置图形区每行字符数:D1+00H+43H

2.3 设置显示方式

设置显示方式的格式为:

1 0 0 0 N3 N2 N1 N0

各位的意义如下:

N3-字符发生器选择位,当N3=1时,选择CGRAM,字符代码为00H~FFH,字节空间为2k;当N3=0时,选择CGROM,字符代码为00H~7FH。

通过N2、N1和N0的不同组合可对合成显示方式进行选择,选择方式如表2所列。只有当文本方式和图形方式均打开时,上述合成显示方式的设置才有效。

表2 合成显示方式选择

N2 N1 N0

合成显示方式

0 0 0 文本与图形以逻辑“或”
0 0 1 文本与图形以逻辑“异或”
0 1 1 文本与图形以逻辑“与”
1 0 0 文本特征方式

2.4 设置显示状态

显示状态指令模式为:

1 0 0 1 N3 N2 N1 N0

其中:N0为光标闪烁位,1为可以,0为禁止;

N1为为光标显示,1为可以,0为禁止;

N2为文本显示,1为可以,0为禁止;

N3为图形显示,1为可以,0为禁止。

2.5 光标形状选择

光标形状选择指令格式为:

1 0 1 0 0 N2 N1 N0

光标形状为8点(列)×N点(行),其中N的值由N0~N2决定。

2.6 设置数据自动读/写方式

该指令包括B0H,B1H和B2H(B3H)等。其中:

B0H表示自动写;B1H表示自动读;B2H为结束自动方式。

该指令的格式为:D1+指令字节,意义如下:

D1+C0H:表示数据写,地址加1;

C1H:表示数据读,地址加1;

D1+C2H:表示数据写,地址减1;

C3H:表示数据读,地址减1;

D1+C4H:表示数据写,地址不变;

C5H:表示数据读,地址不变。

有了上述指令,我们就可开始下一步的软件设计,至于T6963A的更详细说明,请参考文献[1]。

3 控制软件

该控制软件主要讨论液晶模块的初始化、CGROM中字符的显示、CGRAM的设置以及汉字与图形的显示等。

3.1 初始化与准备工作

以下为状态检测程序:

STA1:LCALL STATE

JNB ACC.0,STA1 ;指令读写状态

JNB ACC.1,STA1 ;数据读写状态

RET

STA2:LCALL STATE

JNB ACC.2,STA2 ;数据自动读状态

RET

STA3:LCALL STATE

JNB ACC.3,STA3 ;数据自动写状态

RET

STA6:LCALL STATE

JB ACC.6,ERR ;屏读/拷贝状态

RET

;- - - - - - - - - - - - - - - - - - - - - -

ERR_;LJMP ERR ;出错处理程序

;- - - - - - - - - - - - - - - - - - - - - -

STATE:MOV DPTR,#4001H

MOVX A,@DPTR

RET

在下面的写指令与数据程序中,R2为数据D1,R3为数据D2,R4为指令字节;

WR2:LCALL STA1 ;有D1与D2

MOV A,R2

LCALL WRD

WR1:LCALL STA1 ;无D1,

MOV A,R3

LCALL WRD

WR0:LCALL STA1 ;无D1与D2,

MOV A,R4

AJMP WR00

WRD:MOV DPTR,#4000H

WR00:MOVX @DPTR,A

RET

以下是读数程序:

RD_:LCALL STA1

MOV DPTR,#4000H

MOVX A,@DPTR

RET

有关硬件的初始化,LCD240128A在模块制造时就已做了如下选择:

FS=0,用于选择8×8点阵;

MD2=0,MD3=0确定了每行最大字符数为80;

MDS=1,MD0=0,MD1=0,确定了总行数为16;

下面为软件的初始化程序:

INITATION:LCALL CLR_

MOV R2,#0 ;建立文本区首址

MOV R3,#0 ;为00H

MOV R4,#40H

LCALL WR2

MOV R2,#1EH ;设置文本区宽度

MOV R3,#0 ;为30

MOV R4,#41H

LCALL WR2

MOV R2,#00H ;设置图形区首址

MOV R3,#00H

MOV R4,#42H

LCALL WR2

MOV R2,#1EH ;设置图形区宽度

MOV R3,#0

MOV R4,#43H

LCALL WR2

MOV R4,#0A0H

LCALL WR0 ;设置光标形状

MOV R4,#98H ;打开文本与图形方式

LCALL WR0

MOV R4,#80H ;采用逻辑“或”

LCALL WR0

RET

CLR_; MOV R2,#0 ;清RAM单元

MOV R3,#0

MOV R4,#24H

LCALL WR2

MOV R4,#0B0H ;设置自动写

LCALL WR0

MOV R2,#1FH

CLR1: MOV R3,#0FFH

CLR2: LCALL STA3

CLR A ;写入0

LCALL WRD

DJNZ R3,CLR2

DJNZ R2,CLR1

MOV R4,#0B3H ;结束自动写

LCALL WR0

RET

CLR_:MOV R2,#0 ;清RAM单元

MOV R3,#0

MOV R4,#24H

LCALL WR2

MOV R4,#0B0H ;设置自动写

LCALL WR0

MOV R2,#1FH

CLR1: MOV R3,#0FFH

CLR2: LCALL STA3

CLR A ;写入0

LCALL WRD

DJNZ R3,CLR2

DJNZ R2,CLR1

MOV R4,#0B3H ;结束自动写

LCALL WR0

RET

3.2 CGROM中的字符显示

在1k字节的CGROM中,含有以下00H~7FH为字符代码的常用字母与符号。并于它们的显示程序可以描述如下,这里以显示:“OK!”为例:

DISPI:MOV R3,#00h ;设置指针地址

MOV R2,#0

MOV R4,#24H

LCALL WR2

MOV R2,#0

DISP10:MOV DPTR,#TAB1

MOV A,R2

MOVC A,@A+DPTR

MOV R3,A ;取字符

MOV R4,#0C0H

LCALL WR1 ;写入模块

INC R2

CJNE R2,#03H,DISP10

RET

TAB1: DB 2FH,2BH,01H

3.3 图形方式下显示汉字

可以很方便地从计算机中提取点阵式的汉字字模,并按左上,左下,右上,右下的顺序,把字模保存在程序ROM中,下面以占用32个字节的汉字16点阵“交”字为例如以说明:

HK0:DB 02H,01H,01H,0FFH,08H,08H,10H,28H

DB 44H,02H,01H,02H,04H,08H,30H,0C0H

DB 00H,10H,0A0H,48H,0FCH,48H,48H,0F8H

DB 48H,0FCH,20H,20H,20H,24H,0FEH,00H

下面这个子程序,可以显示一个汉字“交”,通过调用该子程序,即可显示一组语句,具体说明如下:

;R2,R3,R4,R5,A

HZDISP:MOV DPTR,#HK0

MOV B,#20H

MUL AB

ADD A,DPL

MOV DPL,A

MOV A,B

MDDC A,DPH

MOV DPH,A

push dph

push dp1

MOV R2,#10H

MOV A,#00H ;指向字模的左半部地址

HZD1:pop dp1

Pop dph

MOV R5,A

MOVC A,@A+DPTR

Push dph

Push dp1

MOV R3,A

MOV R4,#0C0H

LCALL WR1

pop dp1

pop dph

MOV A,R5

ADD,A,#10H ;指向字模的右半部地址

MOVC A,@A+DPTR

PUSH DPH

PUSH DPL

MOV R3,A

LCALL WR1

MOV A,R2

MOV R3,A

;改变显示指针,

MOV R2,#1CH

MOV R4,#0C1H

HZD2:LCALL WR0

DJNZ R2,HZD2

MOV A,R3

MOV R2,A

MOV A,R5

INC A

DJNZ R2,HZD1

pop dp1

pop dph

RET

在TA6963A的控制指令中,有一个位操作指令,格式为:

1 1 1 1 D3 D2 D1 D0

格式中的D2D1D0用于确定要操作的是0~7位某一位,D3确定该位为1或0.该指令可对当前显示地址指针所指的显示单元中的数据的任一位写“0”或写“1”。有了这个指令,欠就可以很方便地设置点或清除点,从而达到显示任意曲线或图案的目的。

4 结束语

利用LCD240128A液晶模块可以增加系统的可读性。本文就其基本的控制软件与电路作为分析。当然,液晶模块的控制集成电路有很多种,各套指令也有一定的差异,但其基本思想都有很多相似的地址。



评论


相关推荐

技术专区

关闭