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

LCD上位机程序设计[1]_IT/计算机_专业资料

778人阅读|86次下载

LCD上位机程序设计[1]_IT/计算机_专业资料。LCD上位机程序设计[1]


《现代电子技术》 2008 年第 2 期总第 265 期   计算机应用技术 中文图形 LCD 上位机程序设计 张成旭 ,张家生 ,康宗涛 ( 东北大学 秦皇岛分校   河北 秦皇岛   066004) 摘   : 根据中文图形点阵式 L CD 的功能及特点 ,以 VC + + 为开发平台 ,设计 L CD 显示系统的上位机软件 ,包括文件 、 要 设置 、 显示与通讯 、 控制指令以及帮助 5 部分 ,实现了将图片 、 汉字 、 自绘图像以及控制指令等下传给 L CD ,而且实现了实时 绘图功能 ,并可根据控制的不同 L CD 的型号进行相应的移植 。该程序可作为 L CD 的上位机驱动及 L CD 质量检测软件 。 关键词 : 液晶显示屏 ; 中文图形点阵 ;VC + + ; 软件移植 中图分类号 : TN41 , TP33       文献标识码 :B       文章编号 :10042373X(2008) 022113203 Programme Design f or Chinese Graphic LCD Upper Computer ZHAN G Chengxu ,ZHAN G Jiasheng , KAN G Zongtao (Qinhuangdao Branch ,No rt heastern University ,Qinhuangdao ,066004 ,China) form and according to t he f unctio n and characteristic of Chinese grap hic L CD. This software is made up of five part s ,including ferent cont rolled member ,t he system can be t ransplanted. This p rogram can be used as a co mp uter drive for L CD and software to examine t he L CD. Keywords :L CD ;Chinese grap hic lattice ;VC + + ; software t rasplatatio n 1    引 言 来越多的被应用于航天 、 航空 、 家电 、 智能仪器 、 仪表等电 子产品中 。L CD 的种类繁多 , 其中点阵式 L CD 不仅可以 显示字符 、 数字 , 还可以显示各种图形 、 曲线以及汉字并且 可以实现屏幕上下左右滚动 、 动画 、 反转 、 闪烁等功能 , 用 途十分广泛 。而在实际应用当中 , 在一些场合中往往需要 动态实时地显示数据 、 图像并随时在线修改和编辑 L CD 显示的内容 。本文针对 L CD 的这种应用需要 , 采用上位 机与单片机通讯 , 并用单片机控制 L CD 显示相应内容的 结构 ,以具有代表性的金鹏电子有限公司生产的 OCMJ 4 × B中文图形两用液晶显示模块为例具体阐述如何利 8 用上位机在线控制 L CD 显示汉字 、 图像 、 以及在 L CD 上 实时绘图等功能 。 2  系统结构 户所要显示的汉字 、 图片以及一些标准图形等内容同时对 这些内容做相应的处理并通过 RS 232 串口与单片机通 收稿日期 :2007207227 file ,co nfiguratio n ,display and communication ,cont rol inst ructio n and help . It realizes t hat download t he pict ure ,Chinese ,cus2 tomized pict ure and cont rol inst ruction to t he L CD. Furt hermore ,real2time drawing f unctio n is also realized. Aiming at t he dif 2 随着液晶显示技术的发展 , 液晶显示器 ( L CD) 模块越 本显示系统采用 PC 机作为上位机 , 其任务是输入用 Abstract : This paper designs a software system of t he upper co mp uter fo r L CD display system based o n visual C + + plat 2 讯 , 将数据传送给单片机 。单片机将从串口收到的数据按 指令与显示数据区分后发送给 L CD , 其中显示数据按照 A T89S52 单片机 ,对于一般的 L CD 都有集成显示存储器 、 L CD 的坐标定义排列后再送于 L CD 显示 。本系统采用 驱动控制电路等外部电路 , 图 1 所示是 OCMJ 4 ×8 B 型 L CD 与单片机的接口电路 。 图1  8051 与 OCMJ 4 × B 模块连接图 8 3  上位机软件框架 本上位机软件采用 VC + + 软件编制 , 采用 MFC 单文 113 档框架设计 ,在 PC 机上模拟 L CD 实际的显示状态 , 为了 软件技术 张成旭等 : 中文图形 L CD 上位机程序设计  ( ( cb = f stat us. m_size) ! = - 1) )   {  H GLOBAL h Global = Glo balAlloc ( GM EM _ MOV EA2 BL E ,cb) ;   PVO ID pvData = NULL ; L   (h Global ! = NULL) if   {    pvData = GlobalLock ( h Global) ;    (pvData ! = NULL) if    {     file. Read Huge (pvData ,cb) ;    GlobalU nlock (h Glo bal) ;     CreateSt reamOn H Global ( h Glo bal , TRU E , &p Stm) ;    }   } } else {    urn false ; ret } / / 打开文件结束 IPict ure 3 p Pic ; / / 由于该函数有时会导致失败 , 所以应当用 SUCCEED ED 宏来做一些适当的保护工作 , 只有在数据装载成功的前提下才 能继续下面的图像显示工作 if ( SUCCEED ED ( OleLoadPict ure ( p St m , f stat us. m _ size , TRU E ,IID_ IPict ure , (L PVO ID 3 ) &p Pic) ) ) {   E_XSIZE_ H IM ETRIC hmWidt h ; OL   E_ YSIZE_ H IM ETRIC hm Height ; OL   Pic - > get_Widt h ( &hmWidt h) ; p   Pic - > get_ Height ( &hm Height ) ; p   double f X ,f Y;   / 获得图像高度和宽度 /   X = p Widt h ; f   Y = p Heigt h ; f   / 应用 render 函数来显示图像 /   ( FA IL ED (p Pic - > Render ( 3 pDC ,x ,y , ( DWORD) f X , if ( DWORD) f Y ,0 ,   Height ,hmWidt h , - hm Height ,NULL) ) ) hm {   Pic - > Release () ; p   urn false ; ret }   Pic - > Release () ; p } else {   urn false ; ret } ret urn t rue ; } 使用户方便地将画布放大 , 并设有网格 , 由一个矩形区域 代表实际 L CD 的一个点 , 操作界面由菜单 、 画布 、 工具栏 、 状态栏等窗口组成 ,界面友好 ,易于操作 。 本系统上位机菜单项分为以下几个部分 , 软件结构框 图如图 2 所示 : ( 1) 文 件 : 设 有 新 建 、 开 图 像 、 及 保 存 图 像 子 打 以 菜单 ; ( 2) 设置 : 设有网格开关 、 阀值设定 、 画布尺寸设定 、 实时开关子菜单 ; ( 3) 显示与通讯 : 设有显示文本 、 绘制图形 、 发送图形 子菜单 。其中绘制图形子菜单包括自由绘图 、 直线 、 矩形 、 椭圆等基本图形的绘制和汉字和字符点阵的绘制 ; ( 4) 控制指令 : 包括左移 、 右移 、 上移 、 下移 、 反白子 菜单 ; ( 5) 帮助 。 图2  上位机软件结构框图 4  上位机软件功能实现 ( 1) 文件部分 上位机软件中 ,打开图像可以打开 BMP 文件 、P G 文 J 件以及 GIF 文件 。在以往的显示图像的程序中由于这 3 种图像的存储结构不同 , 一般采用不同的显示函数 。对 于 BMP 文件 Microsoft Visual C + + 6 . 0 的 MFC 库有着良 好的支持 ,可以读取 、 、 显示 存储甚至在内存中创建一块内 存位图 , 而对于另外两种图像虽然有一些操作 、 处理他们 的 Active X 控件 , 但使用起来不太方便 。这里采用借助于 COM 接口的 OL E 方法来实现上述功能的一种简便方法 , 代码为 : BOOL C TestView : : Show Pic ( CDC 3 pDC , CSt ring sPat h , int p Widt h ,int p Heigt h ,int x ,int y) {  ISt ream 3 p St m ;   CFileStat us f stat us ;   CFile file ;   LON G cb ;   / 打开文件并检测文件的有效性 /   (file. Open ( sPat h ,CFile : :modeRead) & & if   file. Get Stat us ( sPat h ,f stat us) & & 采用此方法可以打开并显示上述提到的 3 种图像 , 并 且有效地简化了 VC 对 J PE G 和 GIF 文件的打开和显示 。 本系统的保存功能将把画布上的所有图像信息保存为 BMP 格式和二进制文件格式适合于用户的不同要求 。 ( 2) 设置部分 由于本系统点阵信息是通过循环对画布上的每个矩 114 《现代电子技术》 2008 年第 2 期总第 265 期 形区域 ( 对应 L CD 的一个点) 中的中心点的灰度值作为判 断对应 L CD 点是黑点还是白的 , 于是对于打开的彩色图 像 , 固定的阀值可能对不同的图像有着不同的效果 , 所以 在这 里 加 入 了 设 定 阀 值 的 功 能 。灰 度 值 计 算 公 式 为 Gray = 0 . 299 ×R + 0. 587 ×G + 0 . 114 ×B , 阀值范围 0 ~ 255 。首先 , 利用 CDC 的 Get Pixel 成员函数将各个点的 R GB 值赋给 COLORREF 类型的变量 R GB ; 其次 , 利用上   计算机应用技术 这 68 个字节中第一个字节为握手信号 , 第 2 个字节为发 送给 L CD 的指令 , 第 3 个字节为发送的次数的序号 。接 下来空 1 个字节作为备用 , 最后64 个字节发送给单片机 。 数据由上位机发送到单片机并显示在 L CD 的过程是 : 首 先 , 由上位机发送握手信号然后进入等待状态 , 单片机收 到后向上位机发送 0x11 作为收到数据的应答 。当上位机 收到单片机的应答信号后开始发送数据 , 如果一定时间内 上位机没有收到应答 , 则做出单片机无响应的提示 。最 后 ,单片机收到数据后根据第 2 个字节所指示的指令以及 第 3 个字节 所 指示 的 显 示 起 始 坐 标 , 将 数 据 包 的 最 后 64 个字节的点阵数据按照 L CD 的坐标定义排列后送于 L CD 将图像显示出来 。 述公式将每点的灰度值计算出来 , 并与阀值进行比较 , 比 阀值大的认为是白点 , 比阀值小的认为是黑点 , 这样就可 以将彩色图像二值化从而能够被 L CD 所显示 。本系统传 送给单片机的数据是 B YTE 型数组 ,数组中的数据是通过 将黑点和白点所对应的数组中的相应位置 1 和 0 赋值 , 完 成图像点阵数据的打包 。 ( 3) 显示与通讯部分 对于实时功能的实现 , 在自由绘图的情况下 , 每当鼠 标点击和移动时判断绘图事件是在哪个数据包所对应的 区域发生的 , 并将这个数据包发送出去 , 可达到实时在 L CD 绘图的功能 。 ( 4) 控制指令 由于中文液晶显示模块都集成汉字字库 , 显示文本的 功能按照不同 L CD 说明书的所述指令就可实现 。对于基 本图元的绘制 ,例如直线 、 、 矩形 椭圆等图形可以参照图形 学的算法进行绘制 ; 对于点及连续线条的绘制是在 View 类的鼠标左键按下和鼠标移动的响应函数中完成 , 这两个 响应函数都传递了一个 CPoint 类的对象 point 参数 , 这个 参数的 2 个成员变量正是鼠标所在点的坐标值 。这样就 可以将这个对象所对应的点所在的矩形填充为黑色 。本 软件中同时对右键按下的响应函数定义为橡皮作用 , 即将 右键点击的对应点所在的矩形填充为白色 , 这样可实现橡 皮的效果 。 汉字与字符点阵的绘制是为了使图像 、 汉字和字符同 时在 L CD 上显示 ,此功能可以在 L CD 的任意足够的点阵 范围内绘制出汉字和字符 , 使用户更容易地设计 L CD 的 显示布局 。以 16 × 点阵汉字的绘制为例 , 首先 , 应用公 16 式 off set = ( 94 ×( qh - 0xa1) + ( wh - 0xa1) ) × 32L 计算出 输入汉字距离字库起始位置的偏移量 ; 其次应用 CFile 类 将字库文件以二进制格式打开 , 对于 16 × 点阵的汉字 16 的字库为 HZK16 ; 最后根据偏移量从字库中取出 32 个字 节即为输入汉字的点阵信息 。 发送图形功能将上位机画布上所画的图形 、 所显示的 图像以及汉字按照上述图像数据的打包方法打包传给单 片机 ,本软件定义 68 个字节为一个数据包进行发送 。这 是由于单片机的数据存储器空间有限一般不能将 L CD 满 屏的点阵数据一次收全 , 于是将点阵数据分块发送 。以 OCMJ 4 × 显示模块为例 ,他是 128 × 点阵的 L CD , 这 8B 64 对于一般的中文 L CD 都具有移动屏幕的指令 , 根据 说明书的说明即可实现 ,对于上位机的画布上的图像要达 到和 L CD 所示图象同时移动的效果可以应用 CDC 类的 Set Viewport Org 成员函数来改变视口的原点位置 , 这样可 以达到图像移动的效果 。 5    结 语 本文根据中文图形点阵式 L CD 的功能及特点设计了 一套 L CD 显示系统方案 ,并着重介绍以 VC + + 为开发平台 显示系统的上位机软件的设计与实现 。程序在 Windows XP 下编译通过 ,程序可移植性强 ,可针对不同的控制对象 进行相应的修改 。该论文是根据厂商的实际课题而来 , 厂 商应用此软件在于 2 个方面 : 作为 L CD 的上位机驱动随 L CD 交与客户 ,使得客户能够迅速使用 L CD 节省客户的 开发周期 ; 作为 L CD 质量的检测程序 , 通过上位机控制 L CD 实现各种功能 , 来检测 L CD 的质量 。本软件实际应 用良好 。 参      考 文 献 [ 1 ] 孙鑫 . VC + + 深入详解 [ M ] . 北京 : 电子工业出版社 ,2006. [ 2 ] 刘文涛 . MCS251 单片机培训教程 [ M ] . 北京 : 电子工业出版 社 ,2005. 样上位机通过发送 16 次数据包来完成传送 L CD 绘制满 屏图像所用数据 ,每个数据包包括 L CD 四行的点阵数据 。 作者简介   张成旭   ,1981 年出生 ,东北大学在读研究生 。 男 康宗涛   ,1977 年出生 ,东北大学在读研究生 。 男 [ 3 ] 李于剑 . Visual C + + 实践与提高 : 图形图像编程篇 [ M ] . 北 京 : 中国铁道出版社 ,2001. 张家生   ,1957 年出生 ,东北大学秦皇岛分校教授 ,博士生副导师 。 男 115

文档贡献者

billchian

贡献于2010-10-06

喜欢此文档的还喜欢