您的浏览器Javascript被禁用,需开启后体验完整功能, 请单击此处查询如何开启
网页 资讯 视频 图片 知道 贴吧 采购 地图 文库 |

中文图形LCD上位机程序设计_工学_高等教育_教育专区

303人阅读|34次下载

中文图形LCD上位机程序设计_工学_高等教育_教育专区。中文图形LCD上位机程序设计


中文图形LCD上位机程序设计 张成旭,张家生,康宗涛 (东北大学秦皇岛分校河北秦皇岛066004) 摘 要:根据中文图形点阵式I.CD的功能及特点,以VC++为开发平台,设计LCD显示系统的上位机软件,包括文件、 设置、显示与通讯、控制指令以及帮助5部分,实现了将图片、汉字、自绘图像以及控制指令等下传给I.CD,而且实现了实时 绘图功能,并可根据控制的不同LCD的型号进行相应的移植。 该程序可作为LCD的上住机驱动及LCD质量检测软件。 关键词:液晶显示屏,中文图形点阵;VC++}软件移植 中图分类号:TN41,TP33 文献标识码:B 文章编号:1004—373X(2008)02—113一03 Programme Design for Chinese Graphic LCD Upper Computer ZHANG Chengxu,ZHANG (Qinhuangdao Jiasheng,KANG Zongtao Branch。Northeastern University。Qinhuangdao,066004,China) Abstract=This form and according paper to designs a software system of the upper computer for I.CD display system based on visual C++plat- the function and characteristic of Chinese graphic LCD.This software is made up of five parts,including file,configuration,display and communication,control instruction and help.It realizes that download the picture,Chinese,CUS— to tomized picture and control instruction the LCD.Furthermore,real—time drawing function is also realized.Aiming be transplanted.This program can at the different controlled member,the system ware to can be used as a computer drive for 1.CD and soft- examine the LCD. Keywords:I。CD}Chinese graphic lattice VC++;software trasplatation l 引 言 指令与显示数据区分后发送给I。CD,其中显示数据按照 I。CD的坐标定义排列后再送于I。CD显示。本系统采用 AT89S52单片机,对于一般的LCD都有集成显示存储器、 讯,将数据传送给单片机。单片机将从串口收到的数据按 随着液晶显示技术的发展,液晶显示器(I,CD)模块越 来越多的被应用于航天、航空、家电、智能仪器、仪表等电 子产品中。LCD的种类繁多,其中点阵式I.CD不仅可以 显示字符、数字,还可以显示各种图形、曲线以及汉字并且 可以实现屏幕上下左右滚动、动画、反转、闪烁等功能,用 途十分广泛。而在实际应用当中,在一些场合中往往需要 动态实时地显示数据、图像并随时在线修改和编辑LCD 显示的内容。本文针对LCD的这种应用需要,采用上位 机与单片机通讯,并用单片机控制LCD显示相应内容的 结构,以具有代表性的金鹏电子有限公司生产的OCMJ 4×8 驱动控制电路等外部电路,图1所示是()CMJ4x I,CD与单片机的接口电路。 8 B型 B中文图形两用液晶显示模块为例具体阐述如何利 用上位机在线控制LCD显示汉字、图像、以及在LCD上 实时绘图等功能。 2 系统结构 本显示系统采用PC机作为上位机,其任务是输入用 图I 8051与OCMJ4×8 B模块连接图 户所要显示的汉字、图片以及一些标准图形等内容同时对 这些内容做相应的处理并通过RS 232串口与单片机通 3上位机软件框架 本上位机软件采用VC++软件编制,采用MFC单文 收稿日期:2007—07—27 档框架设计,在PC机上模拟LCD实际的显示状态,为了 1 13 万   方数据 使用户方便地将画布放大,并设有网格,由一个矩形区域 代表实际LCD的一个点,操作界面由菜单、画布、工具栏、 ((eb—fstatus,.m_size)!=一1)) ( HGLOBAL BLE,cb)l LPVoID pvData=NUI,I。l if(hGlobal!一NULL) hGlobal—GIlobalAlloe(GMEM—MOVEA— 状态栏等窗口组成,界面友好,易于操作。 本系统上位机菜单项分为以下几个部分,软件结构框 图如图2所示: (1)文件:设有新建、打开图像、以及保存图像子 菜单; (2)设置:设有网格开关、阀值设定、画布尺寸设定、 实时开关子菜单; (3)显示与通讯:设有显示文本、绘制图形、发送图形 子菜单。其中绘制图形子菜单包括自由绘图、直线、矩形、 椭圆等基本图形的绘制和汉字和字符点阵的绘制; (4)控制指令:包括左移、右移、上移、下移、反白子 菜单; (5)帮助。 } { pvData—GIobaILock(hGlobal); if(pvData!一NULL) { file.ReadHuge(pvDatateb); GIlobalUnloek(hGlobal);’ CreateStreamOnHGlobal(hGlobal,TRUE,&pStm); } } else { return false; }//打开文件结束 IPicture-g-pPie f //由于该函数有时会导致失败,所以应当用SUCCEEDED 宏来做一些适当的保护工作,只有在数据装载成功的前提下才 能继续下面的图像显示工作 if(SUCCEEDED(OIleI.oadPicture(pStm,fstatus.nl—size, TRUE,IED IPicture,(LPVOID-I#)&pPie))) XSlZE_HIMETRIC hmWidth; { oI。E ol。E-YSIZE—HIMETRIC hmHeight; pPie-->get—Width(&hmWidth); ● pPic-->get—Height(&hmHeight); double fX。fY; 图2 上位机软件结构框图 //获得图像高度和宽度 4上位机软件功能实现 (1)文件部分 上位机软件中,打开图像可以打开BMP文件、JPG文 件以及GIF文件。在以往的显示图像的程序中由于这 3种图像的存储结构不同,一般采用不同的显示函数。对 于BMP文件Microsoft Visual C”6.0的MFC库有着良 好的支持,可以读取、显示、存储甚至在内存中创建一块内 存位图,而对于另外两种图像虽然有一些操作、处理他们 的Active X控件,但使用起来不太方便。这里采用借助于 COM接口的()I。E方法来实现上述功能的一种简便方法, 代码为: ) BOOL,CTestView I:ShowPie(CDC*pDC。CString sPath, int fX=pWidth; fY=pHeigth; //应用render函数来显示图像 if(FAH,ED(pPic一>Render(’pDC,x,Y,(DWORD)fX, (DWORD)fY,0, hmHeight。hmWidth。一hmHeight,NUL,L))) { pPic一>Release(); return false; } pPic一>Release(); } else { return false; return true; pWidth。int pHeigth,int X,int Y) { IStream。pStm; CFileStatus fstatus; CFile file; I。oNG cb: } 采用此方法可以打开并显示上述提到的3种图像,并 且有效地简化了VC对JPEG和GIF文件的打开和显示。 本系统的保存功能将把画布上的所有图像信息保存为 BMP格式和二进制文件格式适合于用户的不同要求。 (2)设置部分 由于本系统点阵信息是通过循环对画布上的每个矩 //打开文件并检测文件的有效性 if(fIle.0pen(sPath,CFile::modeRead)&& file.(jetSt日ttus(sPath,fstatus)&& 114 万   方数据 形区域(对应LCD的一个点)中的中心点的灰度值作为判 断对应LCD点是黑点还是白的,于是对于打开的彩色图 像,固定的阀值可能对不同的图像有着不同的效果,所以 在这里加入了设定阀值的功能。灰度值计算公式为 Gray一0.299×R+0.587×G+0.114×B,阀值范围0~ 255。首先,利用CDC的GetPixel成员函数将各个点的 RGB值赋给COLORREF类型的变量RGB;其次,利用上 述公式将每点的灰度值计算出来,并与阀值进行比较,比 阀值大的认为是白点,比阀值小的认为是黑点,这样就可 以将彩色图像二值化从而能够被LCD所显示。本系统传 送给单片机的数据是BYTE型数组,数组中的数据是通过 将黑点和白点所对应的数组中的相应位置1和0赋值,完 成图像点阵数据的打包。 (3)显示与通讯部分 由于中文液晶显示模块都集成汉字字库,显示文本的 功能按照不同LCD说明书的所述指令就可实现。对于基 本图元的绘制,例如直线、矩形、椭圆等图形可以参照图形 学的算法进行绘制;对于点及连续线条的绘制是在View 类的鼠标左键按下和鼠标移动的响应函数中完成,这两个 响应函数都传递了一个CPoint类的对象point参数,这个 参数的2个成员变量正是鼠标所在点的坐标值。这样就 可以将这个对象所对应的点所在的矩形填充为黑色。本 软件中同时对右键按下的响应函数定义为橡皮作用,即将 右键点击的对应点所在的矩形填充为白色,这样可实现橡 皮的效果。 汉字与字符点阵的绘制是为了使图像、汉字和字符同 时在I.CD上显示,此功能可以在LCD的任意足够的点阵 范围内绘制出汉字和字符,使用户更容易地设计I.CD的 显示布局。以16×16点阵汉字的绘制为例,首先,应用公 式offset=(94×(qh—Oxal)+(wh—Oxal))×32I。计算出 输入汉字距离字库起始位置的偏移量;其次应用CFile类 将字库文件以二进制格式打开,对于16×16点阵的汉字 的字库为HZKl6;最后根据偏移量从字库中取出32个字 节即为输入汉字的点阵信息。 发送图形功能将上位机画布上所画的图形、所显示的 图像以及汉字按照上述图像数据的打包方法打包传给单 片机,本软件定义68个字节为一个数据包进行发送。这 是由于单片机的数据存储器空间有限一般不能将LCD满 屏的点阵数据一次收全,于是将点阵数据分块发送。以 OCMJ4×8B显示模块为例,他是128×64点阵的I£D,这 样上位机通过发送16次数据包来完成传送LCD绘制满 屏图像所用数据,每个数据包包括LCD四行的点阵数据。 作者简介张成旭 张家生 康宗涛 男,1981年出生,东北大学在读研究生。 这68个字节中第一个字节为握手信号,第2个字节为发 送给LCD的指令,第3个字节为发送的次数的序号。接 下来空1个字节作为备用,最后64个字节发送给单片机。 数据由上位机发送到单片机并显示在I。CD的过程足:首 先,由上位机发送握手信号然后进入等待状态,单片机收 到后向上位机发送0x11作为收到数据的应答。当上位机 收到单片机的应答信号后开始发送数据,如果一定时间内 上位机没有收到应答,则做出单片机无响应的提示。最 后,单片机收到数据后根据第2个字节所指示的指令以及 第3个字节所指示的显示起始坐标,将数据包的最后 64个字节的点阵数据按照LCD的坐标定义排列后送于 LCD将图像显示出来。 , 对于实时功能的实现,在自由绘图的情况下,每当鼠 标点击和移动时判断绘图事件是在哪个数据包所对应的 区域发生的,并将这个数据包发送出去,可达到实时在 LCD绘图的功能。 (4)控制指令 对于一般的中文LCD都具有移动屏幕的指令,根据 说明书的说明即可实现,对于上位机的画布上的图像要达 到和LCD所示图象同时移动的效果可以应用CI)C类的 SetViewportOrg成员函数来改变视口的原点位置,这样可 以达到图像移动的效果。 5结 语 本文根据中文图形点阵式LCD的功能及特点设计了 一套I,CD显示系统方案,并着重介绍以VC“为开发平台 显示系统的上位机软件的设计与实现。程序在Windows XP下编译通过,程序可移植性强,可针对不同的控制对象 进行相应的修改。该论文是根据厂商的实际课题而来,厂 商应用此软件在于2个方面:作为I。CD的上位机驱动随 LCD交与客户,使得客户能够迅速使用I,CD节省客户的 开发周期;作为LCD质量的检测程序,通过上位机控制 LCD实现各种功能,来检测I。CD的质量。本软件实际应 用良好。 1。 参考文献 [1]孙鑫.VC++深入详解[M].北京:电子工业出版社,2006. [2]刘文涛.MCS~51单片机培训教程[M].北京:电子工业出 版社,2005. [3]李于剑.Visual C++实践与提高:图形图像编程篇[M].北 京:中国铁道出版社,2001. 男。1957年出生,东北大学秦皇岛分校教授,博士生副导师。 男,1977年出生,东北大学在读研究生。 115 万   方数据 中文图形LCD上位机程序设计 作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 张成旭, 张家生, 康宗涛, ZHANG Chengxu, ZHANG Jiasheng, KANG Zongtao 东北大学,秦皇岛分校,河北,秦皇岛,066004 现代电子技术 MODERN ELECTRONICS TECHNIQUE 2008,31(2) 参考文献(3条) 1.李于剑 Visual C++实践与提高:图形图像编程篇 2001 2.刘文涛 MCS-51单片机培训教程 2005 3.孙鑫 VC++深入详解 2006 本文链接:http://d.g.wanfangdata.com.cn/Periodical_xddzjs200802039.aspx

文档贡献者

wocshuai

贡献于2012-03-04

喜欢此文档的还喜欢