收藏 分享(赏)

基于pic18f6622的人机界面设计.doc

上传人:cjc2202537 文档编号:201973 上传时间:2018-03-23 格式:DOC 页数:11 大小:44KB
下载 相关 举报
基于pic18f6622的人机界面设计.doc_第1页
第1页 / 共11页
基于pic18f6622的人机界面设计.doc_第2页
第2页 / 共11页
基于pic18f6622的人机界面设计.doc_第3页
第3页 / 共11页
基于pic18f6622的人机界面设计.doc_第4页
第4页 / 共11页
基于pic18f6622的人机界面设计.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、基于 PIC18F6622 的人机界面设计4 基于 PIC18F6622 的人机界面设计基于 PIC18F6622 的人机界面设计DesignOfHumanMachineInterfaceBasedOnPlC18F6622陈国鹏(厦门大学信息科学与技术学院,福建厦门 361005)摘要介绍了如何使用 PlC 单片机 PIC18F6622 和液晶模块 MTGS3224O 进行显示控制系统的设计,分析了其硬件平台的设计要点,给出了清晰的人机界面软件设计架构,介绍了其中最主要的多级菜单的设计方法.设计的显示控制系统在实际系统中运行稳定可靠,证明了设计方法的正确性.关键词:PlC 单片机,MTGS32

2、24O 液晶模块,人机界面,多级菜单AbstractThispaperpresentshOwtOdesignDisplayCOntrOIsystembasedOnPICmicrOcOntr0IIerPIC18F6622andLCMMTGS3224O.ThispaperanaIyzes 廿1ehardwarepIatfOrmOftheirdesignfeatures,andgivesaclearHMlsOftwaredesignarchitecture.ThispaperaIsOintrOducesthem0stnpOrtantmu1l 一1eVelmenudesignmethOd.TheDjs

3、playCOntr0lsystemdesignedinthispaperisrunningsteadiIyandreIiabIyinthereasystem,whlchprOVesthecOrrecfnessOfthjsmethOdKeywOrds:PICMicrOcOntrOller,MTGS3224OLCM,HMI,MultileveImenu本文所论述的设计即是空压机变频控制系统的人机交互子系统终端显示控制系统部分.采用 PIC 系列的 PIC18F6622作为系统的显示控制芯片.采用 SED1335 控制芯片的大型图形点阵式液晶模块 MTGS32240,介绍了 PIC 单片机与液晶模块

4、相结合实现终端显示的硬件接口电路,并在介绍按键与液晶菜单的调用关系的基础上,完整论述了人机界面的软件设计方案.1 系统硬件设计1.1PIC18F6622 及液晶模块 MTGS3224O 简介PlC18F6622 是 MIcrochip 公司生产的一款低功耗,高性价比的 8 位单片机.该型号的单片机硬件系统设计简洁,采用了指令总线和数据总线分开的哈佛双总线结构以及精简指令集RlSC 技术.MTGS32240 是台湾微端科技股份有限公司生产的大型图形点阵液晶模块,由 32024O 点阵构成.模块内置的SED1335 控制器是整个显示模块的核心,是一种能够分层显示文本和图形的,功能强大的 LCD 控

5、制器,具有自身的时钟信号,并提供了一套完整的指令系统,实现对液晶的驱动和控制,使得单片机与模块的接口电路设计更加的简单方便.1l2 系统硬件组成系统硬件平台主要由 MCU,液晶模块,键盘,通信接口,实时时钟等几个部分组成,系统框图如图 1 所示.图 1 系统硬件框图系统实现的人机交互功能:用户通过键盘操作,液晶菜单显示提示,设置设备主机运行所需的参数,再通过 UART 通信将这些参数传送到设备主机上;同时通过 UART 通信,终端显示系统可以查询,获得设备主机运行的工况参数以及故障,警告等信息并将其显示在液晶屏上.实时时钟用于系统的时间统计以及记录,如易损配件的使用时间,系统的运行时间以及故障

6、的发生时间等等.在整个硬件平台中,单片机与液晶模块的接口电路是整个终端显示系统的核心.由于 MTGS32240 液晶模块内置了功能较为强大的 SED1335 控制器,MCU 访问 SED1335 时不需判其“ 忙“,SED1335 随时准备接收 MCU 的访问并在内部时序下及时的把 MCU 发来的指令,数据传输就位,这样配合 PlC 单片机强大的 I/O 口驱动能力,可以直接将单片机的 l/O 口线直接与液晶模块的数据线和控制线相连,无需另加驱动芯片.但有几点需要说明:由于 SED1335 支持 8O8O 系列和 6800 系列两种类型的单片机,模块的引脚 18 即用于选择哪种型号的单片机,而

7、在本设计中 PlC 单片机属于 8080 系列单片机,所以在电路设计中要将引脚 18 置为低电平.引脚 19 至引脚 26 等 8 个引脚属于触摸屏的接口引脚,本设计在硬件电路上也预留了接口,方便今后的功能扩展.单片机与液晶模块的接口电路图如图 2所示.本设计的键盘总共有九个按键,即上,下,右,确认,返回,启动,停机,加载,卸载,前五个按键通过相互配合及功能复用,用于液晶显示菜单的操作以及数据参数的修改等,后四个按键则功能比较单一,用于对设备主机的操作.由于 PIC18F6622 单片机的 I/O 资源比较丰富,且每个 l/O 均可以编程设置其输入或输出,因此设计采用的键盘,直接将按键连到 l

8、/O 口上面 .实时时钟采用 DALLAS 公司生产的串行接口实时时钟芯片 DSI302.该芯片具有体积小,功耗低,占用 CPU 的 I/O 口线少等主要特点,还可对时钟芯片备份电池进行涓流充电,应用广泛.单片机与设备主机之间使用标准的 UART 串口通信,硬件接口电路比较简单成熟,加一片 1_rL 到 RS232 的电平转换芯片即可.工业控制计算机2Oo9 年 22 卷第 9 期 5R 臼 3Io 磷姗 25WRREll6 肪RDo 辩 7D 脚削Jl8DBlRD29nB2l【D35310DB3RD.llD 暑%慧 D55ll2 坤 j崩BDB6l7.9】D 暑 7凇 6ljcsRE363

9、描科证R6l2.Pl 封 l螂25nl3珊剪埘瑚823plSELlIl7l9DCLK瑚 462OCs-TRB352lD 玎Ij2 珏D0Uf图 2 单片机与液晶模块接口电路2 系统的软件设计2.1 初始化液晶显示屏向液晶模块发送数据和命令的驱动程序是系统显示软件的基础.相比于单片机与液晶模块简单的硬件接口电路,单片机对液晶模块进行驱动的软件程序则稍显复杂.在设计发送数据和命令的驱动程序时,必须严格遵循 SED1335 控制器对 8080 系列 MCU 的操作时序,通过加合适的延时来完成时序上的匹配.发送命令和数据的驱动程序如下.voidWRCmd(ucharIcdcmd)LATD=lcdcmd

10、:LCDO=1:LCR=O:Nop():LCD_-WR=1Nop():voidWRData(ucharIcddata)LATD:lcddata:LCDA0=O:LCD._WR=0:Nop():LCDWR=1:Nop():为了对液晶模块进行进一步的操作,依据 SED1335 控制器的指令集,向液晶模块发送合适的参数命令和数据,对液晶模块进行初始化设置,使液晶屏按照正确的方式进行显示.液晶屏初始化的流程图如图 3 所示.本设计中,将汉字,数字,英文字母的显示都看成是图形的显示处理,所以显示之前需要通过字模提取软件获得相关“ 图形 “的信息 ,建立字库,再通过调用以下函数即可以完成任意“图形“ 在液

11、晶屏上指定位置的显示.VoIdWRCHAR(ucharLayer,uchar,ucharY.ucharr0mHZ,ucharW,ucharH)图 3 液晶屏初始化流程图/Layer:层数 ;X,Y:坐标位置 ;/HZ:字模指针;W,H: 宽,高uchari,cOunter,cOI:c0_/8:for(i=0:icoI:i+)/设定光标位置SetCursor(Layer,+i.Y):WRCmd(Ox4F):WRCmd(0x42):f0r(counter=0:counterH:counter+)wRData(Hzi+c0untercoI):22 菜单按键数据结构人机界面系统中最核心的部分,就是多级

12、菜单的软件设计实现.以往的菜单结构大多采用两个全局变量记录当前菜单的所在层数和所在列数,判断用户键值以修改层,列全局变量,用sw;tch/case 语句判断当前的层,列全局变量以执行相应的代码,这样的函数架构使得菜单函数代码庞大,结构复杂,程序可读性差,除了代码开发者,其他人很难看懂程序.更谈不上其后续的开发.为了避免这些弊端,本系统软件对各个菜单项进行编号,将该编号作为菜单的状态索引号,只要根据该索引号就可以唯一确定菜单的当前状态,并根据菜单项与用户按键的相互关系设计了菜单按键的数据结构.cypedefstructunsignedintKeMenulnde:/当前状态索引号unsjgnedj

13、ntKey-PressOk/按下回车“键时转向的状态索引号unsignedintKeyPressEsc:/按下“返回“键时转向的状态索引号unsignedintKey-PressDown:/按下“向下“键时转向的状态索引号unsignedintKey_PressUp:/按下“向上“键时转向的状态索引号unsignedintArrO,LX:/ARROW,用于指示当前菜单项的箭头的显示坐标(X,Y)unsignedintArrO,LY:/ARR0WYMenuKeyStruct:该数据结构体现了菜单选项的嵌套以及菜单选项移动与按键的关系:首先对各个菜单项进行编号,并将该编号作为菜单的状态索引号,只要

14、根据该索引号就可以唯一确定菜单的当前状态.此外,在多级菜单的界面中,要实现菜单的嵌套和菜单选项的移动,还需要与按键的相互配合.该数据结构设计了响应不同的按键后状态索引号的改变.该结构体的最后两个成员变量标识用于指示当前菜单项的箭头的显示坐标位置.在定义了菜单按键数据结构的基础上,定义该结构体类型的数组变量 MenuKeyStructMenuKey【MA一 ITEM】,将全部的菜单选项的嵌套移动关系体现在这个数组中,再定义全局变量CurMenulD 记录当前状态索引号,当有按键时只要查询结构体数组变量修改状态索引号即可.以图 4 为例说明:当前状态索引号 CurMenuID 指向“厂家参数“图

15、4 菜单显示6 基于 PIC18F6622 的人机界面设计这一菜单项,当用户有按键输入时,只要查询数组元素MenuKey【CurMenuID的对应按键的响应成员变量,然后相应地修改 CurMenulD 的值即可以实现菜单选项的移动和转向.这样在软件设计时就可以大大节省时间和精力,当有菜单项增加或减少时,只要修改结构体数组变量 MenuKeyMAx_lTEM】就可以了.由于菜单按键结构的设计,程序结构简单,具有很强的可读性.2.3 显示的数据的数据结构在人机界面中,除了菜单文字的显示外,还要有数据的显示,这包括反映主机设备信息的数据的显示,保存,以及可设置的参数的显示,保存及修改等,这是人机界面

16、设计的另一个难点.为了达到数据显示与文字显示的分离,本文设计了显示数据的数据结构.一typedefstructucharX:/显示数据的坐标ucharY:/显示数据的 Y 坐标ucharNDigit:/数据的位数uchard01pos:/数据小数点的位置unsignedintSourceAddr:/数据存放的内存地址DataDispaIyStruct:本设计的数据流向图如图 5 所示.终端显示控制系统系统复位后,将保存在 EEPROM 中的数据复制到 RAM 中,并将参数通过 UART 发送给设备主机;系统通过 UART 查询设备主机的工况信息,并保存在RAM 当中,若是故障信息,则一并写到

17、EEPROM 中;LCM 要显示数据时再直接从相应的 RAM 中读取显示;当参数设置修改时,按“确认 “键修改参数后 ,将RAM 中的参数写到 EEPROM 中,确保数据的同步图 5 数据流向图性.采用这样的数据流向设计,主要是由于 RAM 的读写速度比较快,EEPROM 的读写速度较慢的缘故,同时由于 EEP-ROM 的使用寿命有限,须减少对 EEPROM 进行频繁的读写操作;这里 RAM 起到了一个缓冲区的作用.2.4 系统软件流程人机界面设计的目标是用户能在菜单方式下进行交互.菜单按键的结构体设计使得按键响应与液晶显示的关系简单明了,显示数据的结构体设计则实现了程序与数据的分离.整个系统

18、软件采用模块化设计,系统软件流程图如图 6 所示.缅,.图 6 系统主程序流程图采用菜单按键的数据结构以及程.序和数据分离的思想,使得在修改原有的窗口或增加新的窗口时,不改变程序原有的结构,这对开发人员有一定的借鉴意义.据此设计的终端显示控制系统,在实际的空压机变频控制系统中运行稳定可靠,很好地完成了人机信息交互的任务.该硬件平台还预留了触摸屏的扩展接口,便于今后的功能扩展.参考文献1MicrochipTechn0Iogylnc.PlC18F8722FamilyDataSheet.20O42MicrotipsTechnol0gylnc.LIQUlDCRYSTALDISPLAYMOD-ULE.2

19、OO63SeikoEpsonC0rporation.SED1335SeesLCDControllerICsTechnicaIManua1.19994陆铮,罗嘉 .单片机 C 语言下 LCD 多级菜单的一种实现方法J.工矿自动化,20O6(1):14 155张皆喜.PlC 系列单片机 C 语言编程与应用实例M. 北京: 电子工业出版社,2OO8收稿日期:2009.4.19(上接第 3 页)packetTagList.Add(tag):3)实现 “写数据包“重载 WriteTag(SampIeTagPacketpacket)方法.注意:需要区分于 WrjteTag(IoTagtag)方法.该方法和设备通信协议相关,不给出具体代码实现.protectedoVerdeboolWriteTag(SampIeTagPacketpacket)returnbase.Wr_teIoTag(packet):3.4 驱动程序的调试最后在完成驱动程序的相关编写工作后,在 MicrosoffVl_suaIStudio 调试环境下首先生成解决方案,在 Debug 的模式下进行调试.也可以通过引用外部指定调试工具进行调试.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报