当前位置:文档之家› 液晶屏显示模块设计

液晶屏显示模块设计

显示模块设计一、显示模块功能分析由于整个控制系统采用的是以为核心的嵌入式系统结构,采用普通的显示器将带来巨大的系统开销。

因此,我们选用显示模块作为本系统的显示部件。

它需要能够实现以下显示功能:1、显示系统的输出结果(1)显示磁浮间距数据(包括上径向X和Y、下径向X和Y、Z轴共五个);(2)以进度条的方式显示磁浮间距数据,使结果更直观;(3)显示北向角度数据;(4)以指针的方式显示北向角度。

2、显示控制参数设置界面(1)显示控制器参数输入框(五行,四列,共20个);(2)支持输入数据的合理显示;(3)显示一些功能按钮(如退出等);(4)支持输入框和按钮的选中和按下状态。

二、显示模块硬件设计1、显示模块的选择为了能充分显示上一节所提到的功能,我们选择320x240的双色点阵型作为显示模块。

该模块自带显示驱动电路,只要通过向其写入相应的命令和显示数据即可完成显示功能。

2、接口电路设计所选用的是5v的逻辑电平接口,为了提高系统的可靠性和稳定性我们采用专门的电平转换芯片74164245。

它是公司的一款16位的双向电平转化芯片。

如果访问只是单向的,采用驱动门电路也可实现电平的转化。

由于的运算速度很高,直接使用存储器读写的方式访问模块,存在时.序不匹配的问题。

为了使访问时序更容易控制,我们采用模拟读写时序对模块进行控制。

综合以上两点可以设计接口电路如图2-1所示。

3.3RResUSN74ALVC164245DGG10VC4VCC (5V1O1VCC (5V1DI3.33VCC (3.3V42VCC(3.3V2O RA22DI4GPIOA1B1A RPot4LCD_GNGPIOA11B1A LCD_VC20GPIOA1VC41B1A LCD_V4GPIOA11B1A LCD_/W41B1A R5LCD_/R41B1A Res LCD_/C311B1A1013LCD_A1B1A LCD_/RESLCD_D036GPIOA0132B12A1LCD_D135GPIOA1142B22A2LCD_D233GPIOA2162B32A3LCD_D317GPIOA3322B42A4LCD_D43019GPIOA42B52A5LCD_D52920GPIOA52B62A6LCD_D62227GPIOA62B72A7LCD_D72623GPIOA72B82A8LCD_NCLCD_VOUT DDDDDDDDNNNNNNNN L_VCC GGGGGGGG VCC L_GND C24405184954231213Cap Semi104图2-1 模块接口电路原理图该电路有一点需特别注意,就是的芯片电源和背光电源要做好隔离。

由于背光最后要转化成很高的电压,经常会反馈回较大的电压脉冲,这会对及其电源芯片造成极具破坏性的影响。

三、显示模块的软件驱动设计1、读写模块的时序匹配模块的读写时序如图3-1所示,其中最关键的时间是T2和T5,必须在给出的一个上升沿之后,保持地址T2(10),保持数据T5(120)。

其它时序在保证顺序的前提下都容易满足。

4.图3-1 模块读写时序图2、显示设置时序正确之后,就可以对的显存进行操作了。

屏幕上所有图形的像素点直接反映到显存的某一位,因此所有图形的显示都是通过对显存的写操作来完成的。

我们所选用的模块的显示芯片是13305F,它是1335的替代芯片,与其有相同的功能。

其指令集如表3-1所示。

表3-1 1335显示操作指令集在模块启动之后,使用之前,应至少有一次系统初始化,即调用系统控制命令‘ '和‘'来设置模块的显示窗口设置和显示区域的显存地址。

根据系统功能的要求把设置为单屏显示,无边界,每行显示40个字节(即满行显示)。

同时,设置第一显示区的首地址为1=0x0000及其占有显示屏上的点行数1=240,第二显示区的首地址2=0x4000 及其占有显示屏上的点行数2=240。

这些设置所对应得‘ '和‘'的参数分别为:[8]={0x30,0x87,0x07,0x27,0x42,00,0x28,0x00};[10]={0x00,0x00,00,0x00,0x40,00,0x00,0x80,0x00,0x00};这其中第一显示区和第二显示区的理解是一个关键点,他们共同管理同一块显示区域,在以上设置中,他们管理的是整个显示屏。

使用‘'可以设置两者合成后的现实效果,这里我们设置为或逻辑叠加方式,同时设置显示区为点阵性质。

既只要有一个区去点亮像素点,则该像素点被点亮。

设置完之后,就可以往显存(显示一区或二区)中写入数据了,关于写入数据,应注意以下几点:(1)屏幕像素点与第一显示区的对应关系如表3-2所示,二区类似;(2)每次只能写入一个字节数据,对应八个点的显示,如表3-2;(3)首先写入光标位置,即接下来写入的第一个数据的地址;(4)光标位置‘'通过设置,先写高字节地址;(5)然后设置光标移动方向‘',为屏幕上的实际方向;表3-2 屏幕像素点与第一显示区地址的对应关系(6)最后依次写入数据,光标会自动移动。

四、显示模块的功能实现1、字模提取V2.2简介通过上一节的设计,我们就可以在的屏幕上自由的显示图形了。

但是,仅用手工的方法绘制图形再转化成字节数据,工作量大的难以实现。

因此我们选用字模提取软件‘字模提取V2.2'来辅助设计。

这是一款免费的绿色软件,使用极为方便。

其操作界面如图4-1所示。

图4-1字模提取V2.2操作界面在文字输入区输入需要的文字,按就可以生成对应的点阵数组。

并且,文字的大小和字体都可以设置。

通过打开图像图标可以调入用其它然间绘制好的的图形。

通过取模方式获得想要的点阵数组。

本软件是专门针对显示设计的,和各种显示的兼容性非常好,是液晶模块现实设计的必备软件。

2、系统输出界面设计先通过自带的绘图工具绘制好320x240的图像,然后调入字模提取软件转所示。

4-2好即可。

根据系统要求界面设计如图图4-2 系统数据输出显示界面磁浮间距数据和其进度条显示、方向角度数据和其指针显示都是需要实时改变的显示部分。

因此,需要分别定义显示函数和对应的清除函数,以便在需要时调用。

数字和符号都可以转化为8的点阵格式,这要在特定的屏幕位置依次写入显示字节即可。

数字显示函数如下所示:( (*p)[12] ){;;c;*;(); 加上0x40可以实现在第二显示区的重叠显示();();();();();();(0<12){(*(*()));}0x01;(0) 0x01;}该函数的输入参数x(0~39),y(0~239)是屏幕坐标,p为一个10x12的数组,每一行表示了一个12x8点的数字点阵,分别表示0~9。

符号的现实类似。

函数中加黑部分即是显示一个图形的典型步骤,曾在上一节显示设置中进行过详细描述。

进度条和指针的显示比较具有技巧性,因为它每一水平像素点都有可能显示,而通常都是只能在八的整数倍的位置才能写入显示数据。

对于进度条,我的办法是先显示8的整数倍长度,然后根据余数用程序生成最后一格的显示图像。

指针类似于进度条,只不过实现移动8的整数倍位置,然后根据余数用程序生成最后两个格的显示图像,因为指针用16位宽度的图像才能显示完全。

下面用进度条的显示函数加以说明。

( )功能:显示长度为的,高度为7的长条块坐标为低8位寄存器(字节),y坐标寄存器(点行){;;0x80;;(>167) = 167;8;8;*;();();显示8的整数倍长度(0<){();();();();();(0<7){(0);}0x01;(0)0x01;}显示百分比数据(109,(*100)/167);(119,12);为生成图像的一行值显示余数部分程序,c(0);(1<){0x802;}();();();();();(0<7){(c);}}4-3通过调用以上显示函数,最后可以实现如图所示的显示效果。

图4-3 系统数据输出显示效果图3、控制器参数配置界面设计所示。

4-4根据系统功能要求,控制器参数配置界面设计如图图4-4 控制器参数配置界面图4-5 输入框的选中状态和输入状态该界面的显示功能实现比较简单,主要包括主界面的显示(同上一小节)、选中虚框的显示、选中实框的显示。

显示函数通过对上一节提到的函数进行一些简化即可得到。

虚实框的显示函数为:( (*p)[7]){;;;*;()+0x40; 加上0x40可以实现在第二显示区的重叠显示();(0<7){();();();();();(0<17){(p[c][b]);}0x01;(0)0x01;}}选择框大小为56x17点阵,数组大小7x17,已由字模提取软件事先生成。

五、结论模块的显示功能除与光电码盘相关的外都已实现,并且试验测试通过。

该部分程序具有很好的模块化,在外部没有任何与和直接相关的操作,全部通过接口函数实现。

.。

相关主题