液晶模块动态波形显示软件实现
收稿日期:2003-11-08 基金项目:重庆大学高电压与电工新技术教育部重点实验室资助
作者简介:罗乐(1974-),男,重庆人,硕士,主要研究方向:医疗电子仪器的开发研究.
论文摘要:如何防止波形抖动是重要的研究课题。运用同步技术对采样数据进行归一化处理,并将数据转化为相应的存储单元,运用直线插值法绘制图形,并将绘制图形等间隔时间移动。介绍利用液晶模块实现液晶图像显示的一个方案和绘制曲线的一种算法,以及实现图形滚动显示的一种方法,减少成本,增加方便性和快捷性,为相关领域的研究提供方法参考和借鉴。
关键词:动态显示;多路波形;采样数据;插值;描点
随着科学技术的发展,生活水平的不断提高,人们的期望值越来越高,希望许多电子产品、检测设备、各种监护仪器小型化、实用化。用微处理器代替系统机来实现同等功能的方法,既可以减少成本,又增加方便性和快捷性。在运用各种微处理器代替系统机实现各种运算和进行处理、显示时,运用液晶模块代替显示器也是必不可少的。在运用液晶模块的过程中,通常会遇到对图形和各种参数同时显示的情况,特别是对静态界面、动态参数和图形的同时显示,无疑具有相当的难度。作者认为可以将显示屏分区,对采样数据进行插值、描点等方法将采样数据还原为图形,然后滚动采样数据和循环扫描显示数据,运用软件来解决这一问题。本文以液晶模块ED1335为例说明这一设计方法。由于静态界面制作相对简单,因此本文只介绍了动态图形的制作方法。
1 预处理
在绘制图形之前,需要将液晶和采样数据进行相应的预处理。根据液晶点阵的大小,将液晶屏分为两个显示区。一般情况下,左边显示区为图形显示区,右边显示区为文本显示区。本文采用的液晶SED1335为320×240点阵,根据实际需要,可以将其分为256×240和64×240两个显示区[1]。
为液晶显示控制器的显示存储单元的地址及数据后都落在液晶模块所容许的范围之内。具体措施是根据采样数据和液晶纵坐标的大小确定出归一化值,并将采样数据都除以归一化值得到显示数据[2]。在编制程序时为了节省时间,可以将归一化值调整为2的整数倍,然后采用数据右移的措施进行处理。
2 插值描点
经预处理后的采样数据(显示数据),不可能完全连续,反应在液晶屏上就是一些离散的点。为了保证图形的连贯,这些离散点之间的间隔点也要绘制出,即不连续的采样数据间要进行插值。只有各点之间没有间隔点时,绘制出的曲线才是完整的曲线。采样频率不同,插值方法也不同[3]。
2.1 纵坐标插值
当采样频率高于扫描频率时采用纵坐标插值。采样数据经归一化后的任意两点(X1, Y1),(X2, Y2),按采样时间先后确定先采样数据为起点(XS, YS),另外一点为终点(Xe, Ye)。
(1)当△Y = Ye- YS>0时,首先在(XS, YS)上描点,
然后将新的描点坐标作为当前(XS, YS)点,重复上述操作直至YS= Ye-1,最后在(XS+1, YS)上描点。
(2)当△Y = Ye- YS<0时,首先在(XS, YS)上描点,
然后将新的描点坐标作为当前(XS, YS)点,重复上述操作直至YS= Ye。
图1 纵坐标插值流程图
2.2 横纵坐标插值
当采样频率低于扫描频率时,横纵坐标必须都要插值。采样数据经归一化后的任意两点(X1, Y1),(X2, Y2),我们选择其中纵坐标值小的为起点坐标(XS, YS),另外一点为终点坐标(Xe, Ye),其斜率K = ( Ye- YS) (Xe-XS),应用△Y= Ye- YS和△X = Xe-XS之间的关系,在保证△Y 0的条件下将斜率K的取值分为四个范围,在每个范围内用ERR参数作为未知点和实线点之间的误差,以此确定相应的作点规则。
(1)当△Y 0,△X 0且△Y △X时,即斜率
K =0~1。在当前坐标点(XS, YS)处,若ERR <0,则下一未知点坐标为(XS+1, YS),且ERR= ERR+△Y;若ERR 0,
则在(XS+1, YS+1)上描点,且ERR = ERR+△Y-△X。然后将新的描点坐标作为当前(XS, YS)点,而所得到的ERR
值为该点坐标的偏差值,重复上述的工作直至XS= Xe为止。图2 插值描点流程图
3 数据移位与循环扫描
显示的图形需实行滚动,即要求图形随时间由屏幕的右边向左边行进(滚动)。在滚动的过程中,由于新显示数据很少和当前的数据相同,因此必须熄灭当前数据对应象素上的点,同时点亮新显示数据对应象素上的点。这就要求在微处理器里建立一个存储片区,保留有用数据。当显示图形从液晶屏左边溢出后,保留的数据会被新数据自动覆盖。在绘制第一屏图形时,液晶上没有点亮的点,可以直接将图形绘制在液晶上,同时将所有数据依次保存在各存储单元。当绘制好第一屏图后,假设每次移动的数据长度为n,则应将构成初始图形的数据前移n个存储单元,同时补充n个新显示数据到移动后剩下的存储单元中。图2为每次移动2位数据的示意图,图中x1~xn为构成初始图形的数据,y1~yn为新显示数据[5]。
当数据移位后就应该对数据进行循环扫描,同时描点绘制出图形。绘制图形必须进行两方面的工作:熄灭当前位上的点;根据新显示数据点亮相应的点。如图3所示,当绘制出第一屏图形后,将所有数据前移2位得到移动一次后的数据,此时补充了2个新显示数据y1和y2,由于新显示数据y1和y2极少与当前的2个显示数据xn和xn-1相同,因此必须熄灭xn和xn-1对应的点,熄灭后应同时点亮y1和y2对应的点,同理熄灭xn-2和xn-3对应的点,点亮xn和xn-1对应的点,如此重复进行下去,当最后x1和x2溢出后整个图形向前移动了2个象素。然后进行第二次移动数据,按照同样的方式移动图形,整个图形就可以在液晶屏上滚动起来。
图3 每次移动2位数据示意图
4 结束语
虽然液晶的品种、型号很多,但是在应用过程中,其思路、方法大体相似。首先将数据进行相应的处理,然后运用不同的作点规则绘制出图形,最后将图形进行移动就可以达到设计的目的。作者在多参数监护仪的开发中,运用液晶模块来显示多路心电波形;在遥测产品车的研究中,运用液晶模块来显示测试的各种波形,均达到了很好的效果。因此,本方法是可行的,
既减少成本,又增加方便性和快捷性,具有一定的实用价值。
参考文献
[1] 李维提,郭强.液晶显示应用技术[M].北京:电子工业出版社,2000.
[2] 关治,陈景良.数值计算方法[M].北京:清华大学出版社,1990.
[3] 杨大地.实用数值分析[M].重庆:重庆大学出版社,2002.
[4] 刘永智.液晶显示技术[M].成都:电子科技大学出版社,2000.
[5] 张毅刚,彭喜源. MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2001. 406