在现代产品设计的理念上,首先使用某一种单片机类的智能IC,并以这个IC为核心搭建出一个芯系统,再外延出若干个功能接口,如显示接口、键盘接口、开关量信号输入/输出接口、模拟量输入/输出接口和打印接口等,最后再拼接各种所需的外围设备,形成产品。这样设计的优点是在芯系统不变的情况下,更改外围设备即可使产品升级、更新。在软件方面芯系统具有基础的功能函数以及外围设备应用所需的基础软件,从而形成良好的开发环境,这就是研发平台的设计思想。
点阵式液晶显示模块在迅速、广泛地应用于各行各业的电子产品中。其应用的最大特点是平板显示占空间小,CMOS电路功耗低,可显示汉字。为了配合研发平台概念的提出和推广,我们对标准液晶显示类产品作了归纳和总结,在此介绍适用于平台设计的通用液晶显示接口电路和MCS|51系列单片机的显示用软件包。
一、 通用液晶显示接口电路
所谓标准液晶显示类产品是指厂家自己设计并推向社会的液晶显示模块产品。它的种类、规格很多,从8×1个字符到40×4个字符的字符型液晶显示模块;从80×32点阵到640×480点阵的图形液晶显示模块。而且同一点阵数的产品还会根据点阵的大小、模块结构尺寸和控制器IC型号等的不同划分不同的系列。
但是,我们避开液晶显示模块产品繁多的型号,仅分析液晶显示模块的计算机接口特性,从而归纳出液晶显示模块与单片机接口的共有特性。纵观国内市场上的液晶显示模块,适用于单片机系统的液晶显示控制器无外乎是这么几种:HD44780及其替代品(字符型)、SED1520(控制122×32点阵以内)、HD61202U(控制192×64点阵以内)、HD61830A(控制240×128点阵以内)、T6963C(控制240×128点阵以内)、 SED1335(控制640×200点阵以内)和QPYD系列(控制640×480点阵单色和彩色)等(注:用于计算机系统的液晶显示控制器不在本文的讨论范围之内)。
虽然这些液晶显示控制器的功能不同,但与单片机的接口时序关系可以归纳为两类。一是Intel 8080时序关系,如T6963C、SED1335和QPYD系列等;另一种是MC6800时序关系,如HD44780、HD61830、 HD61202U和SED1520等。这两类的接口时序如图1和图2所示。
图1 Intel 8080时序图
图2 MC6800时序图
由于各种液晶显示模块与单片机的接口没有一个统一的规范,所以,各厂家设计的接口定义各不相同,这就很难提供一个规范的接口。如果能把所有液晶显示模块的接口统一到一种时序的标准接口特性上,或同一种时序关系的模块接口统一到一种规范的形式下,将对客户在自己产品上的显示升级、更新有相当的好处,也为研发平台设计液晶显示接口提供了统一的标准。
通过归纳对各种液晶显示模块的接口定义,我们设想按接口时序关系提出两种标准接口的定义,如表1所列,以此作为研发平台的液晶显示接口定义,设计出芯系统为液晶显示接口所提供的时序电路,如图3所示。该电路以Intel 8080时序的单片机为例,是由WR、RD、CS和地址线组成液晶显示控制所需的两种时序关系。图3所示电路可以通过短路插座JP1~JP5的设置转换成 4种液晶显示控制所需的时序:① Intel 8080时序;② MC6800时序,单使能信号E,单片选信号CS;③ MC6800时序,单使能信号E,双片选信号CSA,CSB;④ MC6800时序,双使能信号E1,E2。
与单片机的运行速度相比,液晶显示控制器的工作速度是属于中速偏慢的。因此,当在高速单片机系统中设计液晶显示接口时,就要考虑液晶显示控制器的适应能力了。一般在读、写脉宽小于450ns的单片机系统中,我们建议使用间接方式的液晶显示接口,即单片机芯系统与液晶显示接口连接中使用两个8位的并口作为缓冲器。其中一个用作数据信息的缓冲器,另一个用作控制信号的产生。单片机通过对该并口的数据写入、更新,实现对液晶显示控制器的控制信号状态设置和显示数据的写入,从而达到对液晶显示模块的控制。在间接方式下的液晶显示接口实现是比较容易的,但对软件的时序编制要求就比较高了。
二、 规范的液晶显示应用软件包
较完美地实现液晶显示应用,必须有“规范化”的液晶显示基础软件的建设。我们分析了各种控制器的指令特性和用户使用时所需要的基本显示功能,提出了设计规范化应用软件包的要求:
(1) 使用最基层的编程语言——汇编语言,可以使用户在任何高级语言编程时都可以调用;
(2) 尽管因控制器的不同,写入的指令格式和代码不同,但要求程序的入口名都是统一的;
(3) 尽可能减少软件所占用的内部寄存器单元;
(4) 为了使各软件包更换时,对主程序影响最小,软件包所用的全局变量应是统一命名的;
(5) 软件包应包括最基本的驱动程序和应用程序,用户能使用它们完成最基础的显示功能。
基于上述要求,我们编制了QHA51系列液晶显示模块的应用软件库。这个软件库使用了MCS-51单片机的宏汇编指令,包含有:
适应HD44780控制器软件包——QHA51-HD44780;
适应HD61202控制器软件包——QHA51-HD61202;
适应HD61830控制器软件包——QHA51-HD61830;
适应SED1520控制器软件包——QHA51-SED1520;
适应T6963C 控制器软件包——QHA51-T6963C;
适应SED1335控制器软件包——QHA51-SED1335;
适应QPYD系列控制器软件包——QHA51-QPYD。
这组软件包中的功能程序入口名都是统一的,它们是:
PR0: 读忙标志子程序入口;
PR1: 写指令子程序入口1;
PR2: 写参数和数据子程序入口1;
PR3: 读数据子程序入口1;
……
INT: 控制器初始化程序入口;
CLEAR: 清显示程序入口;
CWPR: 西文字符写入程序入口;
CCWPR: 汉字字符写入程序入口;
WDOT: 绘点程序入口。
……
程序参数用PARA1,PARA2……定义。程序变量定义为:
OXH,OXL: X坐标值。在字符显示时该坐标以字节为单位;在图形显示时则以点列为单位。
OYH,OYL: Y坐标值。在文本方式下该坐标以字符行为单位;在图形方式下则以点行为单位。
CODE: 字符代码。
COUNT1,COUNT2…: 计数器。
COM: 指令寄存器,作为驱动子程序的输入变量。
DAT1: 数据寄存器,作为驱动子程序的输入变量。
DAT2: 数据寄存器,作为驱动子程序的输入变量。
该软件库对用户不是烦琐的控制器指令集,而是一组功能函数,从而解脱了用户软件编程的烦琐劳动,提高了开发效率,降低了开发成本。同时还可以实现在不修改系统程序的前提下,仅更换显示功能程序,完成不同的液晶显示模块的更换。
三、 发展的液晶显示应用的规范化
虽然我们提出液晶显示应用的规范化,即液晶显示应用技术服务的规范化建设,但这仅仅是一家所言。日后还有更深、更广的理论和实践工作需要去探讨和完善。要发展液晶显示应用的“规范化”,需要大家同心协力。今天,我们能斗胆提出和在力所能及之处实施“规范化”,就是为了能在应用领域中得到广泛的支持,以期能推动我国液晶显示应用的更快、更好的发展。
上一篇:探索80C51的三种非常规的复位技术
下一篇:8031+PSD813实现在线编程
推荐阅读最新更新时间:2024-03-16 12:51