当前位置:首页 > 电源 > 数字电源

点阵式液晶显示模块相对于段码式LCD或LED的区别在于不仅它可以显示字符,更重要的是可以画图。在很多的测试类设备中,需要设备能够实时的显示曲线以判断被测设备的工作状况,如果采用先保存数据然后送给上位机处理,会加重成本,而且很不方便,而采用段码式LCD或LED显然不能胜任,用点阵式图形液晶显示器可以方便的实现这些功能。

       本文介绍的点阵式液晶显示模块是信利公司的MPG240128A1-7型,它的控制芯片是东芝公司的T6963C。

模块的特点

       T6963C是点阵式液晶图形显示器,可以图形方式、字符方式、图形和字符合成方式显示,以及实现字符方式下的特征方式显示,还可以象CAD一样进行屏拷贝操作。本文中的液晶模块是240×128点阵。 硬件实现

       本液晶模块与MCU之间的数据传送可以通过串口方式,也可以通过并口方式来实现,图1是LCD模块与MCU80C196KC的并口方式下的接口图,其中:

       D0~D7与MCU的AD0~AD7相连,用来传送数据。

       C/D可以与MCU的低位地址线相连,本例是连接AD1,用它区分送给LCD控制器的是命令(Code)还是数据(Data)。 /RESET在本图中也与VCC电源相连,含义是不使用硬件复位。

       /RD和/WR分别连接MCU的读和写信号。

       /CE连接MCU的译码地址。

       VO是LCD需要的负电压。 关键步骤

       LCD初始化 

       LCD初始化包括设置显示图形区首地址,图形区宽度,显示开关设置。 

       图形区首地址:在点阵式液晶图形显示器中,LCD屏幕上的每个显示单元对应一个地址,从左上角开始,从左到右,从上到下。在图形显示方式下,显示单元的单位是1×8点阵(即一个字节),对应于240×128的屏幕,它有240×128×8=3840个显示单元,一屏的地址范围是0_3839。命令控制字是24H和42H。有关命令字请详细参阅T6963C使用手册。

       图形区宽度:它用来调整使用的有效显示窗口宽度,表示每行可有效显示的单元数。对于240×128的显示屏,最多每行有240/8=30个显示单元。命令控制字是43H。

       显示开关设置是将相应的显示方式打开,例如要显示图形,则将图形方式控制位置1。命令控制字是98H。图2是初始化流程图。

屏读指令

       要画出需要的图形,则必须知道图形每个点的坐标值,显然画图要按点控制。我们知道控制器的显示单元是1×8点阵,也就是一次只能画一行8个点。这似乎有矛盾,但T6963C控制器提供了屏读指令,它可以将当前地址所指向的显示单元的值读到控制器的缓冲区,我们再通过数据总线读到MCU,这样我们把将要写入每个单元的值与原来的值相或,那么既不会破坏原来的值,又可以将新值写入,以实现我们所需要的按点控制的方式。屏读命令控制字是E0H。

软件实现

       我们以正弦波为例说明具体画图过程。

       在LCD屏幕上画正弦波,我们可以事先按一定采样率算出相应的点值。然后转换为LCD屏幕上点的坐标值,因为这样可以很直观地控制将要给相应位置显示的信息。以240×128的屏幕为例,它的标范围是纵坐标0_127,横坐标0~29。要在240×128的屏幕上画两个完整的正弦波,幅值为30(纵向30个点),每个周期采样45个点,并带有横坐标和纵坐标。构造正弦波表格:

       TABLE_SIN[45]={ 0,4,8,12,16,19,22,25,27,29,30,30,30,29,28,26,24,21,18,14,10,6,2,-2,-6,-10,-14,-18,-21,-24,-26,-28,-29, -30,-30,-30,-29,-27,-25,-22,-19,-16,-12,-8, -4,0}

       因为画图的显示单元是1×8,一次画一个点,故画图时写入代码值是80H,40H,20H,10H,08H,04H,02H,01H,并且还要将正弦波的值转换为这几个值中的的一个,构造码值表格TABLE_DOT[8]={0x80,0x40,0x20,0x10,0x08,0x04,x02,0x01}。

       下面介绍坐标转换过程:

       正弦波的幅值代表的是它离横坐标的距离。假设原点在LCD屏幕上的坐标值是(1,60),则将第i个点幅值转换为纵坐标的值是60-TABLE_SIN[i],它的横坐标是i/8的商数,代码值是TABLE_DOT[i/8的余数],这样我们调用画图程序就可以实现画正弦波。下面是具体画图的几个主要函数。

在主程序中有以下调用语句:
for(i=10;i<110;i++)/画横坐标

       graphic(0x80,2,i);

       for(i=1;i<29;i++)/画纵坐标

       graphic(0x0ff,i,64);

       for(i=0;i<118;i++)/画正弦波

       graphic(TABLE_DOT[i%8],2+i/8,64-TABLE_SIN[i]);

       下面是屏读函数,读出给出缓冲区地址的值,并返回结果:

       unsigned char pindu(x,y)

       unsigned char x,y;{

       unsigned char value;

       w2d(x,y,0x24);

       wd(0x0e0);

       value=r1d();/从LCD缓冲区读数据

       return value;

       }

       下面是在屏幕上画一个点的画点函数:

       void graphic(code,x,y)

       unsigned char code,x,y;/x坐标0~29

       { unsigned int xy;/坐标变换中间变量

       unsigned char oo,code1;

       /计算显示RAM地址

       xy=y*30+x;/240为液晶屏一行显示的字符数

       x=xy%256;

       y=8+xy/256;/图形缓冲区在高地址

       w2d(x,y,0x24);/写入LCD

       code1=pindu(x,y);

       code=code1;

       w1d(code,0x0c0);写入LCD}

       变量说明读者可以根据使用情况判断,函数r1d(),w2d(),w1d()分别是从LCD缓冲区读一个值,给缓冲区写两个数,写一个数函数。

       笔者在给长庆油田开发的双参数测井仪设备中,采用了本液晶模块,里面需要画两个图形,一个是要测出抽油杆油梁的受力情况,根据画出图形判断油梁是否工作正常,另一个是画出微音传感器采样的声波波形来判断油井的大概深度。整个仪器小巧方便(重量只有2公斤),具有很强的实用性。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭