汤建华
(成都西科微波通讯有限公司,四川 成都 610091)
应工业控制的需求,用户需要直观、简洁、方便操作的人机界面。传统的用发光数码管LED来显示数据的控制方式已经不能满足用户的需要。而液晶显示器具有功耗低、体积小、质量轻、超薄和可编程等其它显示器无法比拟的优点,不仅可以显示数字、字符,还可以显示各种图形、曲线及汉字等功能,从而成为人机界面的最佳选择。
常用的点阵液晶屏是自带字符模块的字符型显示屏,这种字符型显示屏本身具有字符发生器,显示容量大,功能丰富。该种模块最少可以显示8位1行或16位l行以上的字符。这种模块的点阵排列是由5×7、5×8或5×11的一组组像素点阵排列组成的。每组为1位,每位间有一点的间隔,每行间也有一行的间隔,所以不能显示图形。在模块内具有已固化好的字符字模的字符库CGROM,还有让用户自定义建立专用字符的随机存储器CGRAM,允许用户建立有限的自定义字符。
其优点是:整个液晶屏划分明确,每个字符大小都已经固定好,所有字符均可通过查表来实现,使用较简单。
其缺点是:不能显示汉字、图像、曲线或特殊字符等,应用上受限制;字符大小不能任意调节,方式单一;宽温型需要一个负电压的驱动电源,对电源有要求;由于模块内具有已固化好的字符库CGROM,所以价格相对较高。
本文选用的信利液晶屏是信利半导体公司生产的液晶屏M19264-13A2,可以显示最大图形为192×64。其特点是:无字符模块,点阵像素连续排列,行和列在排布中均没有空隔。因此可以显示连续完整的图形、字符和汉字。单电源供电,无需负电压。电路设计简单易实现,软硬件开发扩展容易,成本低廉,是开发控制系统人机界面比较理想的选择。
M19264-13A2是Truly公司生产的192×64单色模块,显示颜色为蓝底白字,接口为20位并行总线方式,各引脚定义如表1所示。
表1 M19264各引脚的含义
(1)RS:数据/指令选择信号。RS=1,表示出现在数据总线上的是数据;RS=0,表示出现在数据总线上的是指令或读出的状态。
(2)R/W:读/写选择信号。R/W—1,为读选通;R/W—0,为写选通。
(3)E:读/写使能信号。在E下降沿,数据被锁存(写入);在E高电平期间,数据被读出。
(4)D0~D7:数据总线。
(5)CS1~CS3:芯片片选信号,低电平有效。CS1—0,选左片Chip1;CS2—0,选中片Chip2;CS3—0,选右片Chip3。
(6)RST:复位信号,低电平有效。复位信号有效时,关闭液晶显示,显示寄存器设置为初值。
信利液晶屏M19264整个显示屏屏高分为64行,屏宽分为192列,由左中右3个Chip组成,这样每个Chip空间为64×64。每个Chip分为8页,每页高为8行,每页点阵大小为64×8。由于每个字节只能显示8个点阵(1列),所以需要显示的字符或图像高度必须是8的整数倍。
考虑显示一个8×8点阵的字符“0”,每一个字节(8bit)表示8个点阵,由于每个字节只能显示一列8×1的点阵,所以应该由8个字节组成。其对应的显示数据为00H、00H、3CH、42H、42H、3CH、00H、00H,则点阵显示效果如图1所示。
图1 8×8点阵的字符显示效果
当显示一个汉字或图像时,由于汉字需要的点阵比较多,8×8点阵就不能满足要求了,必须考虑更大的点阵。比如汉字“藏”,假定字符大小为16×16点阵,由于每个字节只能显示一列8×1的点阵,所以应该由32个字节组成;由于每页只能显示8行点阵,所以需要由两页来显示,每页显示列数为16。其对应的显示数据为02H、E2H、82H、F2H、12H、DFH、52H、D2H、52H、17H、FAH、16H、DAH、92H、12H、00H、10H、8EH、62H、1FH、00H、1FH、15H、1DH、57H、20H、13H、0CH、33H、40H、30H、00H,其点阵显示效果如图2所示。
图2 汉字或图像的点阵显示效果
信利液晶屏M19264-13A2的硬件接口电路很简单,控制芯片采用新华龙公司的单片机,原理图如图3所示。
图3 M19264-13A2的硬件接口电路原理图
图3中,P1口作为液晶屏M19264的数据线,P3口各个控制线控制液晶屏M19264的复位、读/写数据等各种操作功能。
软件开发采用Keil C51语言开发工具,软件程序主要包括两部分内容,一部分是给液晶写指令/数据、初始化及清屏等通用子程序;另一部分是汉字和菜单图形的显示程序。有了通用子程序,就可以构造出各种显示程序。与字符、汉字和菜单图形显示的原理类似,关键在于字模数据库的建立,字模数据可由专门的字模提取软件生成,然后将这些代码逐字节写到相应的页和列。常用的通用子程序有:
(1)写指令子程序。
void wr_command(unsigned char command)
{
RW=0;//写操作
RS=0;//总线数据为指令
P1=command;//将指令值送至总线
E=0;//指令数据锁存
E=1;//将指令数据写入寄存器
E=0;//指令数据锁存
RW=1;//写操作无效
}
(2)写数据子程序。
void wr_data(unsigned char data)//write data in ddram
{
RW=0;//写操作
RS=1;//总线数据为显示数据
P1=data;//将显示数据值送至总线
E=0;//显示数据锁存
E=1;//将显示数据写入寄存器E=0;//显示数据锁存
RW=1;//写操作无效
}
(3)初始化子程序。
void INS()//对左中右3个区域进行初始化设置{
unsignedchar i;
RES=0;//关闭显示屏,显示屏处于复位状态
delay(1000);//延时
RES=1;//显示屏退出复位状态
delay(1000);//延时
for(i=1;i<=3;i++)
{
select_chip(i);//选择显示区域
delay(200);//延时
wr_command(0x40);//设置列地址为0
wr_command(0xb8);//设置页地址为0
wr_command(0xc0);//设置显示位置为(0,0)wr_command(0x3f);//开启显示
}
}
一般来说,显示汉字字符采用16×16点阵,这样显示屏每行可以显示12个汉字,每屏可显示4行。由于要显示的汉字数量不多,所以直接将需要显示的汉字点阵数据存放到程序中,通过编程调用显示数据来实现显示内容,使用十分方便。图像数据可通过绘图工具生成各种图像,其显示数据可以通过字模提取软件来生成,操作简单,修改方便。汉字与图像的显示程序略。
人机界面实现过程为:先依据要显示的内容设计人机显示界面,确定要显示的图像和字符大小和个数,然后通过字模提取软件生成各种显示数据,并将数据存入控制芯片中,以便随时调用。通用子程序通过调用各个显示数据,在显示屏上显示出相应内容。最后根据实际效果对显示内容进行适当调整,就实现了整个人机界面设计。
在人机界面设计中,采用信利液晶屏M19264,实现了图文并茂的人机界面效果,并且硬件设计简单,软件易于维护和扩展,降低了人机界面软件开发难度。该液晶显示屏显示区域适中,可以任意显示字符、汉字、图像等显示内容,应用方便灵活,显示效果良好,性价比高,为控制系统产品的人机界面设计提供了很好的设计思路。
[1]李维諟,郭强.液晶显示应用技术[M].北京:电子工业出版社,2005.
[2]马忠梅.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1998.
[3]李广第.单片机基础[M].北京:北京航空航天大学出版社,2001.
[4]胡伟.单片机C程序设计及应用实例[M].北京:人民邮电出版社,2003.
[5]石成英,李进军,刘志强.图形点阵液晶显示模块与单片机接口技术[J].国外电子测量技术,2004(4):50-53.
[6]向守兵,何巍,罗光伟.图形点阵液晶显示模块FM12864J与单片机的接口技术[J].四川师范大学学报:自然科学版,2004,27(1):85-88.
[7]杨应平,石城,蒋爱湘,等.图形点阵液晶显示模块与51系列单片机的接口设计[J].现代显示,2006(5):41-45.
[8]王占广.基于C51的液晶显示模块的研究与应用[J].甘肃科技,2005,21(1):75-76,74.
[9]吴永俭,李志军,张少如,等.图形液晶显示模块LM19264的显示原理及应用[J].河北工业大学成人教育学院学报,2005,20(1):21-27,31.
[10]郭强.液晶显示的驱动和控制(一)[J].现代显示,1999(1):46-51.
[11]郭强,李维諟.液晶显示器的驱动和控制(续)[J].现代显示,1999(2):32-35,10.
[12]郭强,李维諟.液晶显示器的驱动和控制(三)[J].现代显示,1999(3):41-49.
[13]宋现春,王全景.图形液晶显示模块LG2401281在仪器仪表中的应用[J].仪器仪表学报,2005,26(z1):295-297.
[14]陈忠波,胡鹏程.液晶显示控制器SED1330原理及应用[J].铁路计算机应用,1999,8(4):19-21.