液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段式LCD、字符式LCD和点阵式LCD。其中,段式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线以及汉字、动画,并且可以实现屏幕滚动、反转、闪烁等功能,用途十分广泛。本文主要阐述点阵式液晶显示模块QPYD-03与单片机8031的接口及编程方法。
QPYD-03液晶显示控制器是北京精电蓬远显示技术有限公司开发的液晶显示控制IC。其特点为:
控制彩色320*3*240点阵STN液晶显示模块,8色,单显示区,无需初始化编程工作;实时操作:计算机可以随时读写显示存储器而不影响显示效果,无“雪花”显示;使用简便:与计算机接口和操作指令简单统一,极容易使用,并且升级换屏方便;遵循80时序,所以可以直接与8031单片机利用总线方式通信。
液晶显示控制器管理128KB的显示存储器,显示起始地址固定于0000H,计算机对显示存储器可以进行实时的读写操作。控制器对显示数据的操作使用写方式,即在计算机读显示存储器当前地址单元内容时,显示地址不变;向显示存储器的当前地址单元写入数据时,显示地址自动加一。控制器指令见下表:
QPYD-03液晶显示模块有8根数据线、12根控制线和电源线,其中数据端DB0~DB7直接与单片机P0口连接,片选信号CS用单片机的地址总线控制,WR和RD分别直接与单片机的读写WR和RD连接,A0用来选择两个不同的地址(A0=0时为指令口地址、A0=1时为数据口地址)。
8031片内不带EPROM,程序和自定义字符集字模都放在EPROM27512中。接口电路见图1。其中QPYD-03的VEE为液晶驱动电压+26.1V,调节显示的对比度;LCDCS为片选信号,由GAL16V8给出。
软件采用单片机C51语言,并采用模块化结构,主要包括清屏、西文及数字的显示、汉字的显示、多西文或汉字或混合显示等模块。
3.1总体设计思想
对于清屏,实质就是写入“空”字符(00h),以xx屏上原有的信息,用for循环就可简单实现,具体见源代码的实现部分。
对于西文、数字及汉字的显示,QPYD-03显示模块可控制320*240点阵的液晶显示器。对于8 *8点阵的西文及数字,每屏可显示40列、30行。对于16*16点阵的汉字,每屏可显示20列、15行。汉字有文本和图形两种显示方式,使用文本方式显示一个汉字需写入4个代码,但一般只能显示32个汉字,而使用图形方式,尽管一个汉字需写入32个字节,但由于可显示汉字多,作者选用图形方式。
很多情况下,液晶显示需要多西文、数字、汉字的显示或者西文数字汉字的混合显示,为此,作者设计并编制了多字符汉字混合显示程序,使程序代码具有较高的可读性和运行效率。图2给出了程序流程图。图中字模的保存与查找的实现是通过struct结构体来实现的。
3.2软件实现
以下为液晶显示器各软件模块的源代码,它们均通过了编译器的编译实现,经验证有着很好的显示效果。
随着现代测控技术的发展,仪器仪表的智能化程度越来越高,对仪器可操作性的要求也越来越高。因此,良好的人机界面越来越受到设计者的重视。本文介绍的液晶显示模块的功能、显示方法及编程的技巧在测控领域有着广泛的使用价值。