基于RA8806控制器的LCD和51单片机接口技术
扫描二维码
随时随地手机看文章
1 引言
由于点阵液晶显示具有高清晰度和高分辨率,可显示复杂文字和图形,耗电省等优点,在移动通讯、仪器仪表、电子设备等方面得到广泛应用。而触摸屏作为良好的人机接口一直应用于仪器仪表。触摸屏和点阵液晶显示模块的相互配合使用,使得人机界面更加完善美观。这里介绍的基于RA8806控制器的LCD就是内建触摸屏控制器的点阵液品显示模块。
2 RA8806控制器简介
RA8806是点矩阵液晶显示控制器,支持320x240、四灰阶、双图层文字及图形显示模式,内建中、日、英、欧文字型码,可将文字旋转90°、180°、270°显示。RA8806内建智能型触摸扫描控制器,支持4线电阻式触摸屏接口,带8x8的键盘扫描接口,可编程设置的脉宽调制用来调节LCD面板的对比度或背光。RA8806也提供如区域卷动、文字反白、粗体文字、文字放大、内存清除等功能。RA8806还提供一项创新功能即无雪花模式,可有效移除当频繁对内存读写所产生的雪花。
3 RA8806和51单片机接口电路
RA8806支持4位或8位数据总线的8080/6800系列MPU接口,其外部接口引脚功能描述如表1所示。基于RA8806控制器的LCD和51系列单片机的接口采用总线或直接I/O方式,基于总线的接口方式如图1所示,数据总线直接和单片机的PO端口相连,P20选择指令或数据,P27作为片选信号,因此LCD的命令端口地址是0x7100,数据端口地址是0x7000。LCD的复位信号直接从51单片机的复位信号取反得到,为保证LCD复位信号的稳定,单片机复位的对地电阻不能大于4.7 kΩ。LCD的复位也可采用基于直接I/O方式的LCD接口方式(图2),用一个单片机引脚产生复位信号。
4 软件设计
基于RA8806控制器的LCD软件设计包括基本读写函数、字符串显示函数、画线函数、图像显示函数、触摸屏相关函数等。这里重点介绍基本读写函数的编程方法,编程注意事项及触摸屏的开发过程。
4.1 基本读写函数
基于RA8806控制器的LCD和51单片机接口的基本读写函数主要包括:指令写入函数(写数据到寄存器),缓冲器读取函数,内存写入和读取函数,以及状态读取函数。这些函数主要是按照RA8806数据资料给出的时序要求进行编写。单片机和 RA8806接口方式不同,编程方式也不同。以RA8806指令写入函数为例,时序要求如图3所示。
若RA8806和单片机的接口按图1的总线方式,指令简单,接口时序由单片机自动形成,其指令如下:
4.2 RA8806编程注意事项
(1)内存写入与读取 当写数据到内存(可能是显示内存或字型产生内存)时,必须先执行缓存器编号为B0h的“写入指令周期”。反之,如果读取内存中的数据时,则必须先执行缓存器编号为B1h的“写入指令周期”。
(2)字符模式和图形模式 RA8806支持两种自MPU写入内存的模式:字符模式和图形模式。在图形模式时,数据以点阵的方式直接写入内存;而在字符模式下,写入的数据以字码的形式被写入RA8806,而写入的字码会再到CGROM中读出相对的字型码而后写入内存。因此,当需要画线或显示图像时,必须设置LCD 工作在图形方式;当显示字符时,务必切换到文字方式。
(3)LCD的复位和初始化 为保证RA8806无误操作,RA8806供电后要进行复位。复位方式可采用图1方式,也可采用图2方式,或单独采用阻容方式。复位后要初始化设定RA8806内部缓存器,即编写一个初始化函数,并在复位后运行。
RA8806功能强大,只有包括卷动、反白、双图层、四灰度等功能,以及独特的消除闪烁模式功能,建议使用C51编程,以函数的形式实现以上功能,将这些函数封装在一个C程序中,通过头文件供主程序调用。
4.3 触摸屏编程
RA8806内建一组10位A/D转换和控制电路,以连接4线电阻式触摸屏。一般,电阻式触摸屏由两层很薄的电阻式屏幕组成,当外力施加在面板上的某一点时,两层屏幕将被触碰,相对于触碰的位置,系统将侦测到一个(X,Y)坐标值。触摸屏查询方式流程(图4)的作用是开启触屏功能,判断当触控事件发生时,首先读回对应的(X,Y)坐标值(两组10位A/D转换值),再转换为对应的屏幕坐标。
触摸控制电路的10位A/D转换器产生的(X、Y)坐标都在1 023~0中,而基于RA8806的LCD分辨率是320x240,程序要将触摸屏的(X,Y)坐标值转换为LCD坐标值,确定两者间的转换关系一般通过触摸屏的校准程序完成。最简单的校准算法是两点校准:在LCD的左上角和右下角显示2个校准图标(长为20的十字光标),十字光标的交叉点即为校准点。分别触摸2个十字中心的交点,可得到两组触摸屏的(X,Y)坐标值,而LCD的2个十字中心的坐标已知,由式(1)可得到水平和垂直方向的斜率和截距,然后将水平和垂直方向的斜率和截距保存在EEPROM中。
对于要求触摸定位不很精确的场合,比如仅以字符为单位的定位精度,也可在系统中省去校准程序,而在程序转换中给出一个相近的斜率和截距。
5 结束语
基于RA8806的LCD与同类产品相比,具有功能强、调试简单、编程灵活和性价比高等优点,且内建4线电阻式触摸屏接口,内置中文字库和ASCII码字库。因此基于RA8806的LCD可广泛应用于智能仪表、数字化仪器等。