用LCD显示被测量波形的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

用LCD显示被测量波形的设计论文摘要:随着测量仪器的不断发展,利用液晶显示模块来对各种参数和波形进行显示逐渐流行,如何显示被测量波形成为研究的课题。文中介绍一种用液晶显示器显示被测量波形的方案,该方案采用MCS-96系列80C196KC16位单片机控制,将被测量在液晶显示器上采用纵横坐标插值描点算法实现静态显示,并能以四象限坐标实现任意波形的快速显示及测试结果的显示,有主菜单及相应的下拉子菜单显示功能,通过键盘可设置各种参数;采用触膜按键,通过面板操作,与使用电脑一样习惯,直观简洁。采用深圳安的利光电科技有限公司生产的AM320240-57C58STN图形点阵液晶显示模组。论文关键词:单片机,液晶显示模组,插值描点算法,波形显示利用工控电脑采用虚拟仪器方式来显示测试波形及测试结果,具有成本高、可维护性差等缺点。根据市场需求,介绍一种采用触膜按键及320×240LCD显示屏显示波形的软硬件实现方法。1硬件结构设计系统硬件结构电路图如图1所示。本系统采用MCS-96系统列中的80C196KC16位单片机,扩展了一片27256程序存储器,用于存放程序代码,扩展了一片62256数据存储器,主要用于存储该系统采集的原始数据及经过处理后待显示的波形数据和测试结果,液晶显示模组是采用SED1335显示控制器的AM320240-57C58STN液晶显示模组。80C196KC工作在8位数据总线模式,因为液晶显示模块与单片机的接口是8位命令/数据总线,利用80C196KC单片机将待显示的波形数据或测量结果通过数据总线送至液晶显示模块的显示缓冲区中显示出来。波形数据在显示前己采集好,并根据采样数据和液晶横纵坐标量程的大小确定出归一化值,并将采样数据都除以归一化值得到能在液晶显示屏上显示出来数据,即预处理。另还扩展了一些读写等控制线。图1系统硬件结构电路图1.1AM320240-57C58STN液晶显示模组介绍1.1.1模组接口描述采用20P的矩表插头与80C196KC单片机相连,如表1-1所述表1—1模组接口描述表1—2SED1335液晶显示控制器指令集描述引脚序号名称说明1VSS电源地2VDD电源输入(+5V)3VADJ液晶显示对比度调节4WR写选通信号(低电平有效)5RD读选通信号(低电平有效)6CSLCD片选信号(低电平有效)7A0命令/数据输入选择线(高:命令,低:数据)8RST液晶显示器复位信号(高电平有效)9—16D0—D78位数据总路线18VEE内置负压17、19、20NC--功能指令操作码说明参数量系统控制SYSTEMSET40H初始化,显示窗口设置8SLEEPIN53H空闲操作--显示操作DISPON/OFF59/58H显示开/关,设置显示方式1SCROLL44H设置显示区域、卷动101.1.2SED1335指令集描述AM320240-57C58STN液晶显示器采用SED1335液晶显示控制器,其指令集如表1—2所示,采用先传送指令后传送参数的方式。1.2电路原理介绍1.2.1存储地址空间分配程序存储器地址空间为0000H---7FFFH,共32K字节,采用一片27256EPROM。数据存储器地址空间为8000H---FFFFH,共32K字节,采用一片62256SRAM。80C196KC单片机采用冯诺依曼体系结构,程序存储器与数据存储器共用地址64KB地址空间,地址总线中最高位(A15)为低电平选择程序存储器空间(即选择存储芯片27256),当地址总线中最高位(A15)为高电平时经反相后选择数据存储器空间(即存储芯片62256)。1.2.2键盘接口电路采用3*6矩阵键盘,共18个按键输入。6根行线(KO1—KO6)设置为输出,扩展一片74LS164实现串并转换输出,利用单片机的P2.7作串行输出线和P2.6作串行时钟线。3根列线设置为输入,利用单片机P0.5—P0.7作为键盘扫描列输入线。1.2.3液晶显示模块接口电路采用单片机的P1.0作为液晶显示模块的选择在效信号线,当该引脚输出为低电平时有效,正常工作该引脚应为低电平。采用单片机的P1.2作为液晶显示模块的复位信号线,该引出现高电平时液晶显示模块在内部控制器的作用下完成复位操作,正常工作该引脚应输出低电平。采用单片机的P1.1作为液晶显示模块命令输入或数据输入输出的选择线,当该引脚为低电平时为命令输入,为高电平时为数据输入输出。采用单片机的P1.3作为液晶显示模块的写控制有效信号。采用单片机的P1.4作为液晶显示模块的读控制有效信号。使用地址/数据总线的低8位数据总线与液晶显示模块的数据总线相连。通过一10K电位器调节液晶显示模块3脚电压,可对液晶显示模块进行对比度调节。2插值描点算法设计经过预处理后的被测量数据(待显示波形数据)不可能完全连续,反映在液晶显示模块CSRFORM5DH设置光标形状2CGRAMADR5CH设置CGRAM起始地址2CSRDIR4C-4FH设置光标移动方向--HDOTSCR5AH设置点单元卷动位置1OVLAY5BH设置合成显示方式1绘图操作CSRW46H设置光标地址2CSRR47H读出光标地址2存储操作MWRITE42H数据写入显示缓冲区若干MREAD43H从显示缓冲区读出数据若干上是一些离散的点,为了保证波形的连续,这些离散的点之间的点也要绘出,只有各点之间没有间隔点时才能完整的显示被测量的波形,为了实现此功能,下面介绍一种横纵坐标插值描点算法。横纵坐标插值描点算法流程图如图2表示。在进行横纵坐标插值时,选择待显示被测量波形数据中的任意相邻图2横纵坐标插值描点算法流程图两点,即起点(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,则下一未知点坐标为(Xs+1,Ys),且err=err+△Y;若err≥0,则在(Xs+1,Ys+1)上描点,且err=err+△Y-△X。然后将新的描点坐标作为当前(Xs,Ys)点,而所得到的err值为该点坐标的偏差值,重复上述的工作直至Xs=Xe为止。2、△Y0,△X≥0,且△Y△X时,即斜率K1。在当前坐标点(Xs,Ys)处,若err,则在(Xs+1,Ys+1)上描点,且err=err+△Y-△X;若err≥0,则在(Xs,Ys+1)上描点,且err=err-△X。然后将新的描点坐标作为当前(Xs,Ys)点,而所得到的err值为该点坐标的偏差值,重复上述的工作直至Ys=Ye为止。3、△Y≥0,△X,且∣△Y∣≤∣△X∣时,即斜率K=0~-1。在当前坐标点(Xs,Ys)处,若err,则在(Xs-1,Ys)上描点,且err=err+△Y;若err≥0,则在(Xs-1,Ys+1)上描点,且err=err+△Y-∣△X∣。然后将新的描点坐标作为当前(Xs,Ys)点,而所得到的err值为该点坐标的偏差值,重复上述的工作直至Xs=Xe为止。4、△Y0,△X0,且∣△Y∣∣△X∣时,即斜率K。在当前坐标点(Xs,Ys)处,若err,则在(Xs-1,Ys+1)上描点,且err=err+△Y-∣△X∣;若err≥0,则在(Xs,Ys+1)上描点,且err=err-∣△X∣。然后将新的描点坐标作为当前(Xs,Ys)点,而所得到的值为该点坐标的偏差值,重复上述的工作直至Ys=Ye为止。3软件设计本系统的主要目的是将采集到的被测量在液晶显示模块上以波形直观的显示出来,并指引用户在使用过程中的操作等。在设计中的软件主要由主程序、LCD初始化程序、键值处理程序、波形显示程序组成。为了便于以后的维护及修改,采用模块化程序设计技术和采用易于移植的C96语言。3.1主程序主程序主要用来对LCD进行初始化设定、显示开机界面后,然后无限循环扫描矩阵键盘并进行相应键值的处理。主程序流程图如图3所示波形显示区测试结果及相应主菜单的子菜单和参数显示区图3主程序流程图图4开机界面示意图在对LCD初始化之前,因80C196KC单片机的复位速度比LCD的复位时间要快得多,所以应在主程序的开始处延时1毫秒以使LCD能可靠的复位。调用LCD初始化程序对LCD进行初始化后,显示如图4所示的开机界面。在后述的LCD初始化程序中设置了LCD模块的第一显示区为文本显示区,第二显示区为图形显示区。在此将显示屏分为三个区域以显示不同的内容,分别为主菜单文本显示区、子菜单文本显示区、波形显示区(即图形显示区)。在主菜单文本显示区(该显示区属于LCD模块第一显示区的一部分)显示仪器型号(如MATS-2000SAMEASURESTYSTEM)。在主菜单文本显示区(该显示区属于LCD模块第一显示区的一部分)显示主菜单(如TITLE、SAMPLE、SCHEDULE、RESULT、DISPLAY、UTILITY)。在子菜单文本显示区(该显示区属于LCD模块第一显示区的一部分)显示子菜单。在波形显示区(该显示区属于LCD模块第二显示区的一部分)显示四象限坐标,其方法采用前面所述的插值描点绘制三横三纵六条线段。最后循环扫描键盘并进行相应功能处理,方便用户的操作。3.2LCD初始化程序LCD初始化程序主要对LCD模块进行初始化设定,LCD初始化程序流程图如图5所示。LCD初始化程序主要用来对LCD进行显示窗口初始化设置、显示区域设置、点单元显示方向设置、光标设置、光标移动方向设置、合成显示方式设置,以便使LCD在显示字符或波形前己被设置为一个合适的状态。最后清除文本和图形显示区,具体实施参阅LCD产品说明书。3.3键盘扫描及键值处理程序键盘扫描及键值处理程序的作用是扫描矩阵键盘并进行相应键值的处理,键值处理程序流程图如图6所示。在本程序中可根据功能需要将键定义为数字键(在本程序中主要定义了0—9十个数字键或数字命令输入键)、导航键图5LCD初始化程序流程图图6键值处理程序流程图(上下左右四个方向导航键,参数输入确定键ENTER和取消键盘ESC等键)、功能键(波形显示功能键、测试结果显示功能键)等三类键。1、键盘扫描调用键盘扫描程序对矩阵键盘进行扫描,然后返回扫描结果。根据返回结果判断无键按下则直接返回。根据返回结果判断有键按下则根据如下描述进行处理。是功能键则进入功能键处理模块进行处理。是导航键则进入导航键处理模块进行处理。是数字键则进入数字键处理模块进行处理。2、功能键处理功能键处理模块是根功能键类型进行相应处理。如该键是波形显示功能键则调用波形显示程序将被测量波形显示在波形显示区。如该键是测试结果显示功能键就将存储在数据存储区的测结结果在液晶显示屏右下侧的子菜单文本显示区显示出来。3、导航键处理导航键处理模块是根据导航键类型进行相应处理。如该键是向左导航键则将光标向左移动一个字符或移向前一项主菜单,当前处在第一个字符(第一项主菜单)则将光标移到最后一个字符(最后一项主菜单)。如该键是向右导航键则将光标向右移动一个字符或移向后一项主菜单,当前处在最后一个字符(最后一项主菜单)则将光标移到第一个字符(第一项主菜单)。如该键是向上导航键则将光标移向上一项子菜单,当前处在第一项子菜单则将光标移到最后一项子菜单。如该键是向下导航键则将光标移向下一项子菜单,当前处在最后一项子菜单则将光标移到第一项子菜单。4、数字键处理将该数字键的“ASCLL码”在当前光标位置显示出来并保存在数据存储器中,方便用户参数的设定。3.4波形显示程序本程序的主要作用是从被测量中等间隔取样若干个点在LCD的波形显示区上近似的显示出来,波形显示程序流程图如图7所示。1、数据取样及预处理从待显示被测量数据中等间隔取样90个点(根据实际需要可取任意个点),将取样的90个点进行预处理。2、波形显示前处理设定计数器COUNT并初始化为0(即首先指向第一个点)。每描

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功