摘要:本文以一种由st7902驱动的点阵液晶显示模块ocm4×8c为例,给出了其在基于dsp的嵌入式便携仪表中与dsp芯片(tms320f2812)的硬件接口电路和c语言显示子程序,实现了多层菜单和动态波形的显示。
关键词:图形点阵液晶显示;dsp;c语言程序
中图分类号:tp368文献标识码:b
abstract:inthispaper,wetakeanexampleofaliquidcrystaldisplay(lcd)moduleocm4×8c,whichisdrivenbyst7902,thehardwareinterfacecircuitandclanguagesubprogramwithdsp(tms320f2812)appliedintheembeddedportableinstrumentisproposed,multi-menuanddynamicwaveformdisplayisrealized.
keywords:graphiclatticelcd;dsp;clanguageprogram
图形点阵式液晶显示模块具有尺寸小、功耗低、寿命长、成本低、可显示各种图像与文本信息等优点,因此在各种仪器仪表、电子设备、移动通讯及家用电器中得到广泛的应用[1]。本文结合笔者在“便携式电力故障录波仪”项目中的实践经验,着重介绍如何把液晶显示模块应用做嵌入式dsp系统人机界面的问题,仅用四个按键相互配合,通过软件编程实现多层菜单和动态波形的显示。软件部分采用c语言编制,模块化设计,具有很强的可移植性,可以直接应用到其他的嵌入式系统中。
1.模块的工作原理
1.1基本功能
ocm4×8c液晶显示模块是128×64点阵的汉字图形型液晶显示模块,内置国标gb2312码简体中文字库(16×16点阵)、126个字符(8×16点阵)及32×128点阵显示ram(gdram)。可与cpu直接接口,提供两种界面来连接微处理机:8位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式、反白显示等。
1.2引脚定义
ocm4x8c液晶显示模块的引脚说明如表1所示。该模块对液晶显示的控制和驱动都由模块内部的芯片及电路来完成,因此它与外部的连接只有数据线和控制线。主控cpu通过这些数据线和控制线来设置所需要的显示方式,其它功能均由模块自动完成。
1.3指令系统
当st7902在接受指令前,微处理器必须先确认st7902内部处于非忙碌状态,即读取bf标志位时bf需为0,方可接受新的指令;如果在送入一个指令前并不检查bf标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令执行完成。
st7902提供两套控制命令,基本指令和扩充指令,re为基本指令与扩充指令集的选择控制位,当改变re位后,往后的指令集将维持在最后的状态,除非再次改变re,否则使用相同的指令集时,不需每次重设re位。
下面举例说明指令格式,如进入点设定(指令代码为0x02h):
codersrwdb7db6db5db4db3db2db1db0
0
0
0
0
0
0
0
1
0
0
功能:游标右移,ddram位址计数器(ac)加1
st7920a提供硬体游标及闪烁控制电路,由地址计数器(addresscounter)的值来指定ddram中的游标或闪烁位置。
表1液晶显示ocm4x8c模块的引脚功能
tab.1pinfunctionoflcdocm4x8cmodule
2.ocm4×8c和tms320f2812并行接口设计
2.1硬件电路设计[2,3]
利用f2812的pa口的pa0~pa10作为和st7902并行连接的接口,其中pa0~pa7对应st7902的八位数据线端口,pa8~pa10对应控制器的控制线端口,st7902的复位端口与f2812的复位端口xrs相连,背光灯的阳极la接5v电源,负极lk接地,psb管脚通过上拉电阻接高电平,使芯片工作在并行连接方式。利用f2812的pb口的低四位pb0~pb3作为与外部四个按健的接口,四个按键分别为返回,向上/下,确认。这四个按键相互配合可以实现多层菜单和数据、波形的动态显示。其硬件连接图如图1所示:
图1tms320f2812与st7902并行接口图
fig.1diagramoftheparallelinterfaceoftms320f2812andst7902
图1中还包含dsp最小系统的时钟电路和复位电路,时钟电路由晶体和谐振电容组成,复位电路由rc充放电组成,为了便于调试,复位电路中增加了一个跳线器(j2),用于手动复位。笔者在设计过程中遇到一个问题,需要特别注意,液晶模块驱动器st7902的工作电压为2.7~5.5v,但是ocm4×8c的工作电压为4.5~5.5v,所以两者配合的使用时电压需在4.5~5.5v之间,不然液晶显示将无法正常工作,所以不能为了方便用dsp芯片电源3.3v。
2.2软件程序设计[3-5]
下面给出与上述硬件电路配套的c语言显示子程序。包括初始化子程序、主