当前位置:首页 > 显示光电 > 显示光电
[导读] 液晶是人机交互最重要的通道,液晶不光要显示文字信息,还要显示波形信息,所以,编写一套完善的函数库是必不可少的,其中应该包括显示ASCII码、字符串、整型数字、浮点数、汉字、画点、画线等一系列函数。 上层函数

液晶是人机交互最重要的通道,液晶不光要显示文字信息,还要显示波形信息,所以,编写一套完善的函数库是必不可少的,其中应该包括显示ASCII码、字符串、整型数字、浮点数、汉字、画点、画线等一系列函数。

上层函数的建立离不开底层的驱动,最底层驱动应该是建立在液晶基本时序与指令的基础上。如图1,是液晶模块的基本时序图。

图1 DMF5001液晶模块基本时序图

根据时序图和控制指令,不难写出基本的读写函数。这些函数就是构建上层的基础。之后,还必须了解液晶的基本显示方式和充填方式。如图2,是液晶模块的缓冲区与显示屏的映射关系。T6963控制芯片内部有64KB的缓冲区,可以由程序划分为图形、文本、文本特征3类缓冲区,在不同缓冲区里写入不同数据,在液晶屏上将映射相应的信息,这也就是液晶模块显示信息的原理。

图2 DMF5001液晶映射方式

因为T6963内部含有ASCII码字库,所以要想显示字符信息,只需在文本区内填入相应的信息即可。

如果要显示汉字或图形,则必须先在单片机内部的ROM区建模,然后将这些信息写入液晶的图形缓冲区,在液晶控制模块的控制下,相应的信息就会映射在显示屏上,也就是我们看到的汉字或图形信息了。

如果要实时显示AD采集的波形图以及FFT处理后的频谱图,这里将就动态波形显示用到的技术加以详细介绍。

(1) 点的显示

波形的显示离不开“点”的显示,所谓“点动成线”也就这个道理,对于只有黑白两级灰度的液晶来说,画一个“点”就是将一个像素点亮。所以我们根据时序图,先建立在LCD屏上显示“点”的底层函数。在液晶屏上绘制“点”,有两点需要注意,一是缓冲区空间的大小,二是像素的充填方式。在DMF5001液晶模块中,“点”的绘制需要在图形缓冲区中进行。对于160×128像素的显示屏,图形缓冲区一共占用(160×128)/8=2560字节的空间,每一个字节对应一个地址,也就是一共有2560个地址。考虑到DMF5001图形的充填方式是从上到下,横向填充,加上控制指令本身就支持对一个像素亮灭的控制。所以很容易根据缓冲区的地址,控制液晶屏上某一个点的亮灭,也就是所谓的画“点”了。

(2) 坐标系的建立

显示波形,涉及到多个点的依次显示,前后两个点的显示位置需要被确定,因为只有这样,才能衡量被显示波形的变化程度。所以,在液晶屏上建立一个参考坐标系是很有必要的。由于图形缓冲区与液晶屏上的点是一一映射的,我们不妨先在液晶屏上按照思维习惯规划出一个坐标系,然后根据坐标系的坐标值,再反映射到实际的缓冲区中,这样,我们根据反映射之后的地址,就可以在液晶屏上对应地址显示“点”信息了。正如图3所示。

图3 液晶屏坐标系与图形缓冲区地址之间的映射

(3) 动态波形的形成

我们在液晶上看到的波形是动态的,也就是说波形应该是连续闪动变化的,这里涉及到一个扫描帧数的问题。我们知道人眼的视觉暂留时间是0.1s,也就是说如果图像在一秒钟内连贯变化25次(帧),整个过程看上去就是“动”起来的。对于本次作品的波形显示来说,帧数越高,实时性就越好,当大于25帧后,已经看不出明显的波形刷新过程了。但是由于实际控制器的工作速度有限,以及整个过程运算量很大,只要能保证4到5帧的刷新率,就可满足要求了,当然,这是以牺牲了实时性为代价的。

波形刷新在软件上的具体实现是比较容易的,因为坐标系已经被建立,所以显示区域的大小就是已知的,一旦某次显示区域被写满数据,就马上进行该区域的清除,这样就等于完成了一帧的扫描,往复进行,被显示的波形数据就“闪动”起来了。

(4) 显示数据的合理量化

AD模块采集的数据如果不经过处理而直接送入图形缓冲区用于显示,显示效果是很差的。这是因为液晶屏的高度和宽度都是有限的,也就是说屏幕的可视面积是有限的,加之我们人为规定了坐标系,实际显示的数据很可能会“溢出”坐标系。这就需要我们根据坐标抽的长和宽,合理的缩小(或放大)AD采集的数据。示意图如图4所示。

以本次设计为例,液晶屏原始波形显示区的坐标抽规划为:x轴有128个单位(像素),y轴有64个单位(像素),对于10位的AD,如果采集到最大电压信号值,得到1023的AD值,为了能在显示区域显示出这个信号点,需要进行1024/64=16倍的比例缩小。如果被测量太小,显示不明显,我们同理也可以进行比例放大,如果这时在屏幕上给出相应的放大或缩小信息,就等于实现了显示区域的伸缩扩展,我们可以通过合理的计算,得到一个最佳的显示比例,这也就是数字存储示波器上自动调节波形功能的技术雏形。

图4 显示数据的合理量化

(5) 优化显示效果

按比例缩小后的AD值是离散的,如果直接在屏幕上显示,看到的是一个个离散的点,视觉效果同样很差,所以有必要对这些离散的点进行插值补偿,让它们变得连续光滑。插值补偿的算法很多,不同的算法带来的补偿精度也不同,这里介绍一种最简单的补偿方法:每当显示了一个点,就用变量记录下这个点的坐标信息,当显示下一个点时,对比前后两个坐标的差距,用跟踪的方法,把两个坐标之间差的点补齐,这样,就等于用线把两个点连接在一起,波形看上去就光滑的多了。正如图5所示。

图5 波形优化前后的不同效果

(6) 时标轴左右滚动的实现

根据实际的设计要求,为了方便波形数据的查阅,还设计了可以左右滚动的时标轴。其实现原理是,分别将在文本区显示的自定义ASCII字符(这里是由“|”线构成的时标轴)与在图形区显示的波形在液晶屏上进行合成显示,这样两类信息在两类缓冲区中运算显示,互不干扰,具体的对应信息可以通过之前定义的坐标系换算得到。这里也再次显示出定义坐标系的必要和方便。整个过程示意图如图6所示。[!--empirenews.page--]

图6 时标轴左右滚动的实现

本次设计为DMF5001液晶模块编写了一整套的图形函数,充分满足了显示的需要。其中使用了一目了然的小图标来代表文字信息,更是将整个界面的友好程度提升了一个档次。以下是一些实际显示效果。

图7 波形显示效果图

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

智能家居的发展大约可以分为四个阶段,分别是萌芽期、开创期、徘徊期、融合演变期,未来几年会根据社会的发展以及互联网+时代的不断迈进,后续有望达到专家预想的爆发期阶段。

关键字: 智能家居 互联网+ 控制芯片

《VB语言程序设计(第2版)》是2009年电子工业出版社出版的图书,作者是林卓然。本书主要介绍可视化程序设计的基本知识和编程方法。

关键字: vb程序设计 编程方法

  作者: 义隆电子股份有限公司 蔡政地   义隆电子的电容式触摸屏目前除广泛应用于手机产业之外,在MP3、MP4、PMP、DSC、PND等产品中也都有相关设计产品的采用,国际大厂也已纷

关键字: 控制芯片 电容式触摸屏 触控屏

  从电视到可穿戴——在2014年的显示器技术学会和展会上,技术开发趋势的这种转换趋于明显。面向可穿戴的超低功耗反射型液晶模块已经快速投入量产。显示器周边部件也加快了支持

关键字: 可弯曲电池 可穿戴技术 液晶模块

  针对25W以上的大功率内置/外置灯具电源来说,由于对功率因素和THD的要求较高,而且输出电流也比较大,因此目前的解决方案通常以两级架(APFC+DC/DC)为主。   而传统的两级方

关键字: 控制芯片 晶丰明源 电源 面板灯

2016年11月22日,致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下友尚推出基于国际大厂器件的QC3.0+USB PD二合一type-c车用充电器解决方案。 &nb

关键字: 充电器 控制芯片

为增进大家对工业机器人的了解,本文将对工业机器人的分类、工业机器人的结构特点和工业机器人的常用编程方法进行介绍。如果你对本文内容具有兴趣,不妨继续往下阅读哦。

关键字: 工业机器人 指数 编程方法

什么是PCIe NVMe SSD控制芯片?它有什作用?2018年6月8日,台北——全球闪存控制芯片领导品牌慧荣科技(Silicon Motion Technology Corporation, NasdaqGS: SIM...

关键字: ssd 慧荣科技 控制芯片

Trinamic推出了一种新的大电流步进电机驱动/控制芯片TMC5160的评估板-TMC5160-EVAL-SHIELD 。SHIELD与市场上价格实惠的STM32 Nucleo板具备相同的接口,以实现直接兼容。

关键字: trinamic 控制芯片 tmc5160-eval-shield

继推出16.5V~500V输入、高效节能接触器控制芯片SCM1501B后,为满足市场上直流接触器、继电器、电磁阀等场合更低工作电压需求,金升阳对应推出7V~40V输入电压控制芯片SCM1502A。

关键字: 控制芯片 继电器 scm1502a

显示光电

64703 篇文章

关注

发布文章

编辑精选

技术子站

关闭