0 引言
液晶显示器由于它具有功耗低、体积小、重量轻、显示的信息量大,能显示各种类型的信息,如字符、图形(包括汉字、曲线、表格等),正越来越广泛地应用于各个领域,尤其是在便携设备中,更是占据着绝对主流的地位。
对于简单的信息显示,通常用段码式LCD驱动器,如盛群的HT1621等。而对于复杂的信息显示,则必须由点阵式LCD驱动器来驱动,最常见的点阵式LCD驱动器中,有不带中文字库的东芝LCD驱动器T6963[1-4],也有带中文字库的矽创LCD驱动器ST7920[5-7]。对于较大的应用系统,由于系统通常有足够大的存储空间,可以将中文字库放在系统的存储空间中,因此常选用不带中文字库的LCD模块;对于较小的应用系统,系统控制器本身的存储空间有限,且运行速度较低,因此通常选用带中文字库的LCD模块。
在一般应用中,人机交互是通过显示屏和键盘来完成的。但在小型便携式应用中,不仅系统控制器的存储空间较小,无法将中文字库放在其存储空间内,而且控制器的IO口数量也非常有限,不能满足实际应用对按键及IO口数量的要求。瑞佑科技最新推出的RA8816,不仅内置了中文字库,而且还提供了4&TImes;5的键盘扫描接口及多种控制器接口,特别适用于各种小型屏幕应用产品,如收银机、公用及家用电话、传真机、手持式电子装置及各式测量设备等。
1 RA8816介绍
RA8816是一个点阵LCD驱动控制器,能够支持中英文及图形显示模式,其内部结构框图如图1所示。RA8816内部主要是由显示内存、256K字节的字模ROM、命令寄存器、LCD控制器、LCD驱动器、升压电路、分压电路、微控制器接口及键盘扫描电路等组成。其中内置256K字节的ROM字库,包含中文字库、数字和英日欧文等字母字库。1170字节的显示内存,最大可支持144&TImes;65的LCD面板。此外,RA8816还提供450字节的屏幕滚动缓存,使其具有滚动屏幕时显示内容不断更新的效果。在文字模式中,RA8816可接收标准中文编码(GB码或BIG5),直接显示中文,而不需要进入图形模式以绘图的方式显示中文,提高了液晶显示效率。与ST7920不同的是,RA8816可以任意指定中文字符的显示位置,并且无须偶地址对齐。RA8816还提供了256字节的CGRAM用于自行造字,以便在文字模式下显示字库中没有的文字符号。
在控制器接口方面,RA8816提供了多种接口方式,可直接支持8080/6800系列控制器的并行数据总线接口,并提供4位或8位的数据位宽。此外RA8816还支持串行总线控制接口,包括3线、4线(A—Type和B—Type两种)及I2C共四种的串行接口。
RA8816整合了多项的实用接口,包含内置DC/DC升压电路及液晶亮度调整电路,4 x 5的键盘扫描接口并支持长按及短按时间判断,8个通用IO口可直接驱动LED,这些接口极大地简化了外围电路设计。因此在系统开发时,可选用成本较低的微控制器与RA8816搭配,不仅使系统设计快捷、方便,而且能够降低开发成本。
RA8816的主要特性有:
1.支持1/65占空比,1/9~1/5偏压的LCD面板;
2.内置2~4倍升压电路、电压调整电路及电压跟随电路;
3.内置RC振荡器;
4.支持文字与图形两种混和显示模式;
5.支持BIG5或GBO码
6.支持ASCII 8&TImes;8英文字型,8&TImes;16半角和16×16全角简体中文或繁体中文;
7.支持粗体、反白、滚动等多种显示效果。
2 RA8816硬件配置
RA8816可工作在并行模式或串行模式,工作模式的选择由P/S引脚状态来决定,P/S为高电平时,选择并行模式,否则为串行模式。引脚C86用来选择并行接口的类型,当C86为高电平时选择6800系列控制器接口,为低电平时选择8080系列控制器接口。引脚BIT4用来确定并行模式中数据总线的宽度,BIT4为高电平时总线宽度为4位,否则总线宽度为8位。当工作在串行控制模式时,其串行接口方式由表1确定。
LCD驱动方式及面板材质的不同,所需要的驱动电压是不同的;在实际应用系统中,系统能提供的电压也是有差异的。这要求LCD驱动芯片有较宽的电压工作范围,RA8816内置有步进升压电路,可以产生4倍、3倍或2倍于(VDD—VSS)电压的LCD驱动电压-VLCD,该电压供给电压调整器及内部LCD驱动电路使用。若在C1P与C1M跨接一个1μF左右的电容则能产生2倍于(VDD—Vss)电压;若C2P与C2M也跨接一个l μF左右的电容则产生3倍于(VDD—Vss)电压;若要产生4倍于(VDD—Vss)电压,则还要在C3P与C1M间跨接一个l μF左右的电容,如图2所示。RA8816灵活的VLCD产生方式,使得其能够驱动不同材质的LCD面板。
RA8816的系统时钟由引脚CLK_SEL的状态来确定,CLK SEL为高电平时,系统时钟由内部RC振荡电路产生;CLK SEL为低电平时,系统时钟需外电路提供并从EXT CLK引脚输入。RA8816的矩阵键盘扫描接口应用起来非常方便,只要将KsT[3..0]行扫描输出和KIN[4..0]列输入信号接上相应的按键,如图3所示,并通过相应命令寄存器的设置就能正常工作。当有按键按下时,引脚会产生中断信号,系统控制器就可以通过控制总线接口读入相应的键码。
3 RA881 6软件编程
系统控制器对RA8816有两种控制时序,一种是对命令寄存器的读写(Rs=0),另一种是对数据寄存器的读写(RS=1)。RA8816的命令寄存器共有25个,在对命令寄存器读写时,控制器必须先告诉RA8816要对哪一个命令寄存器进行读或写,因此控制器传递给RA8816的第一个数据是RA8816命令寄存器的索引号,第二个数据才是真正写入(或读出)该命令寄存器的有效数据。命令寄存器控制着RA8816的显示属性,数据寄存器反映RA8816的显示内容。RA8816的控制接口有多种形式,下面以I2C接口为例,说明如何对RA8816命令寄存器进行读写,其他接口的读写过程与此相似。RA8816命令寄存器的写时序如图4所示。
根据图4所示时序,写命令寄存器的子程序如下所示:
当RS=I,表示控制器对RA8816进行数据寄存器的读写,如果写入(RW=O)数据到数据寄存器,写入的内容根据命令寄存器设置而显示在LCD屏上。如果是读取(RW=1)操作,则读取的是不同模式下的字模数据。
有了对寄存器的读写函数后,就可以对RA8816的显示进行控制,下面以文字滚动功能为例,说明RA8816的控制方法。RA8816提供LCD的显示画面,可根据命令寄存器任意指定一块区域,由硬件自动做屏幕画面的滚动,其中命令寄存器可以设置屏幕的滚动方向和速度,每次滚动画面的像素与滚动的范围等。与滚动相关的主要命令寄存器有:SWSXR[0x08]和SWSYR[0x09]两个寄存器决定滚动区域的左上角坐标x和Y;SWR xR[0x0A]和SWRYR[0x0B]两个寄存器决定滚动区域的大小Ax和△Y;SCOR[0x0C]表示滚动的位移量;ASCR[0x0D]的DB7’DB4决定滚动的速度,DB3~DB0决定每次位移的像素点数;SCCR[0x0E]的DB7和DB6决定滚动多少个像素点后产生中断,DB3和DB2决定屏幕滚动的方向。图5给出了屏幕滚动流程图。
图5.屏幕滚动流程图
屏幕滚动的主要代码如下:
4 小结
内置中文字库的液晶显示驱动器RA8816,不仅具有多种显示模式及显示效果,而且支持常见的8080/6800系列控制器并行接口和多种串行接口,这极大地扩展了RA8816的应用范围。RA8816内置的步进升压电路及电压调整电路,可以匹配较宽范围的系统电压。此外,RA8816还提供了键盘扫描和通用IO接口,大大简化了系统硬件电路设计和软件设计,使得用低成本的控制器就能实现完善的人机交互界面。