1 引言
在目前诸多的显示器件中,液晶显示器以其体积小、功耗低、无辐射、寿命长、工作电压低等优点,广泛应用于各种家用电器、仪器仪表及小型测试系统中。随着现代测控技术的日益发展,液晶显示器已经成为人机对话的重要工具。本文介绍的CIG3224-1SNCW图形点阵式液晶显示模块符合军工级性能指标要求,具有高亮度、高对比度和宽温工作范围,其分辨率为320×240点阵,可用多层合成显示各种复杂图形和文本信息。外置的SED1335控制器含有内部字符发生器并支持用户自定义字库的外部扩展,最大驱动能力达640×256点阵,是同类产品中功能最强的一种。
2 硬件构成及功能
CIG3224-1SNCW液晶显示模块由LCD显示屏、SED1335控制器、显示RAM及字符外部扩展ROM、电压适配器等部分组成,其具体电路结构如图1所示。

图1 CIG3224-1SNCW液晶显示模块电路结构
SED1335控制器是整个液晶显示模块的核心,由控制部、驱动部及接口部组成,其功能是:接收来自MPU系统的指令与数据,产生相应的时序控制模块的显示。控制部具有很强的显示存贮器管理能力,可将64K的显示RAM分成三个或四个显示区同时管理,并可从显示RAM区中开辟一块空间作为外部字符发生器CGRAM,其中可以存放64个用户自定义的8×8或8×16点阵字符的字模信息;还管理着一个内部字符发生器CGROM,其中固化了160种5×7点阵字符的字模;另外,还可以扩展外部固化字符发生器External CGROM来取代内部CGROM。驱动部具有高效的数据传输组织能力和显示区域合成显示能力,能够实现图形和文本格式的混合显示。接口部提供较强的I/O缓冲功能,并且具有两套时序电路,可适配Intel8080系列和M6800系列计算机操作时序。同时,SED1335控制器的指令多达13个,多数指令还带有若干参数,用户可根据实际应用的需要灵活设置其参数,实现多样化的显示功能。振荡器工作频率为1~10MHz。
电压适配器由DC~DC模块和DC~AC模块组成。DC~DC模块由芯片将输入的5V直流电压变成-20V的负压,并可通过可调电阻微调,以实现对液晶屏显示对比度的调节;DC~AC模块的逆变变压器将输入的5V电平变成300V的交流电压,驱动液晶屏的CCFL背光灯。
3 硬件接口设计
CIG3224-1SNCW液晶显示模块用作PC机或MCS-51系列单片机的扩展时,其接口时序采用Inter8080时序。它与单片机的接口方法分为直接访问方式和间接控制方式,在本文所应用的测试系统中采用的是直接访问方式,其接口设计如图2所示:

A0是I/O缓冲器选择信号,由P2.0引脚提供,当它为高时可写入指令代码或读取数据,为低时写入数据或读忙状态标志。译码器产生片选信号,系统扩展较多时可由CPLD来实现。数据总线接在单片机的P0口上,读写操作由单片机的读写信号控制。R、C构成上电自动复位电路,SEL1和SEL2都接低电平,选择液晶模块的Inter8080操作时序。基于这种接口方式,单片机以访问存储器的方式访问液晶显示模块,其操作时序是由单片机内部时序决定的,因此叫做直接访问方式。在此方式下,对液晶模块读写控制的编程实现比较简单。
间接控制方式则不使用单片机的数据系统,而是利用其I/O口来实现对液晶模块的操作。例如,可将液晶显示模块的数据线与单片机的P1口连接作为数据总线,片选信号及另外三根时序控制信号(A0、RD、WR)利用P3口中未被使用的I/O口来实现。这种访问方式不占用CPU的存储器空间,它的接口电路与单片机内部时序无关,其时序完全由软件编程实现。
4 软件设计
用户可以用汇编语言或C语言进行源程序的编写,用C语言开发出的程序易于维护,可靠性高,可移植性好。下面详细介绍基于Windows环境用C语言开发CIG3224-1SNCW液晶模块软件的方法和应注意的问题:
4.1 系统初始化
定义液晶模块的指令地址为Addr_I,数据地址为Addr_D:
#define Addr_I XBYTE [0x××××]
#define Addr_D XBYTE [0x××××]
uchar CODe Syset_Tab[8]={0x33,0x87,0x07,39,66,240,40,0x00};
uint data i;
Addr_I=0x40; //写入SYSTEMSET指令
for(i=0;i<8;i++)
Addr_D=Syset_Tab[i];//写入该指令的参数,设定窗口宽度、刷新频率等
… …
规划好屏幕的显示布局后,SYSTEMSET指令的参数一般不用再变,故将其以数组形式存放于ROM中,有助于提高运行速度。对于其它变化的指令参数可存放在RAM中。依据此方法,可对其它必要的指令及参数进行初始化设置。对以文本方式显示的屏区写入空字符,对以图形方式显示的屏区将其对应的显示RAM中信息都置为00H,便可实现对整个屏区的清零。
4.2 文本显示方式
在文本显示方式下,显示数据都被认为是字符代码,SED1335根据它确定字符库中的字符首地址,然后将对应的字模数据送到驱动单元中以供显示。
(1)使用内部字库
SED1335控制器内部的CGROM中含有160种8×8点阵字符的字模信息,其字符代码范围是20~7FH和A0~DFH。首先通过SYSTEMSET、OYLAY指令中的相关参数来选定内部字符发生器,并设定其字符显示的宽度、高度等,再用SCROLL指令设定该文本显示区在显示RAM中对应的位置及长度,据此,将字符代码写入正确的显示RAM字节单元中,便在屏幕上的相应位置显示此字符。
(2)使用用户自定义字库
用户自定义字库的字符代码范围是80~9FH和E0~FFH,在SED1335控制器内部对E0~FFH范围的代码作了与40H的异或运算,使字符代码范围变成连续的80H~BFH。自定义字库的使用与内部字库相似,不同的是,在显示之前要用CGRAM ADR指令在显示RAM中指定一个空闲区域(CGRAM)以存放用户字模信息,参数SAG设定此区域的起始地址。值得注意的是,SAG仅是一个相对地址,实际的起始地址是(SAG+400H)单元。这是因为对于一个8×8点阵的字符,其字模信息会占用CGRAM中连续的8个字节单元,因此,为了保证字符代码(即字模信息首字节地址)的连续性,在CGRAM中查表时不是将字符代码直接与SAG相加的,而是左移了三位以后再加的。
4.3 图形显示方式
当把液晶屏上某个区域设置为图形显示方式时,显示数据被直接送到液晶显示模块上,一个字节对应显示屏上的8×1点阵。
(1)画点与消点
点操作即是对屏幕上单个象素点的操作,而指令中对显示数据的读写都是以字节(8个象素信息)为单位的,为了避免覆盖、破坏其它象素点的信息,首先要根据该象素点的x、y坐标计算出该象素点在显示RAM缓冲区中的映射位置,读出此字节信息,按画点或消点的要求设置其对应位的状态,再将该字节写入原映射位置,便实现了单点操作。
(2)绘制任意线条
线操作建立在点操作的基础上,先将线条分解成一个个单点,运用一定的算法得到每个象素点的x、y坐标,然后调用画点子程序完成绘制。
(3)载入图片
先用取模软件得到图片的模信息,存入内部或扩展ROM中,要显示图片时,读取这些模信息再用字节数据写入指令写到相应的显示RAM区。通过设定数据写入顺序及延时可得到不同的显示效果。
(4)显示汉字
采用文本显示方式显示汉字虽然速度快,但有很大的局限性,一是其字符数量有限,二是其字符大小只能是8×8或8×16点阵的。采用图形显示方式能很好地解决这个问题。在图形显示方式下,用户可以自制任意大小的字符,而且可以应用现成的各种大小的字库资源(如国标一级、二极简体中文字库)。字库存放在扩展ROM中,显示汉字时,先根据其ASCII码计算出对应ROM中字模信息的首地址,然后逐个字节读出并按一定规则写入指定的显示RAM区中,还原成汉字。
4.4 各种显示效果的实现
(1)多层合成显示
对于较为复杂的界面,可借助多层合成显示来实现。例如可以把背景图片或静态的文本、坐标轴等放在底层,而把须不断刷新的动态信息放在另外一层来显示,各层显示内容可以设定成按某种逻辑运算(与、或、异或等)来叠加。这样可避免重复操作,提高刷新速度。通过SYSTEMSET、OYLAY、DISP ON及SCROLL指令可以将屏幕设定成两层或三层,每层的显示属性可以不同,并且可将表层分成两个显示区来操作,十分方便、灵活。
(2)其它效果
通过对HDOT SCR、DISP ON/OFF、SCROLL等指令参数的动态设置可以实现各显示区生动的显示效果,如闪烁、左右位移、上下位移、反白显示等。
5 结束语
本文对CIG3224-1SNCW的特性及其在单片机系统中的应用方法作了系统、全面的介绍,给出了它与单片机的两种接口设计,提出了其软件设计思想,目前已成功地应用于某型武器装备的测试系统中。CIG3224-1SNCW液晶模块不仅能很方便地进行大信息量的各种字符的显示,而且能实现图形及曲线的显示,可使人机接口更加友好,为单片机在各领域中的应用提供强大的LCD显示功能。




