近年来,LCD显示器的普及和微处理器向大容量的发展使嵌入式系统的人机交互功能得到了显著的提高。在很多场合下,良好的图形用户界面(GUI)和便捷的操作环境是影响产品成败的关键因素之一。如何充分利用成本低、资源少的单片机系统实现完善的人机交互功能已成为单片机设计者需要解决的一个问题。
目前,国内外许多先进的智能仪表不仅在测量精度和采样速率等方面有较高的性能指标,在人机交互的友好性方面也有许多独到之处。笔者在为德国TOX冲压技术有限公司研制智能压力监控仪的过程中,积累了一些嵌入式系统人机交互技术的没计经验。本文以此为实例,介绍其设计方法。
1 智能压力监控仪概述
智能压力监控仪是为德国TOX冲压技术有限公司研制的专用仪器。该公司专门生产金属板件连接冲压设备,为保证连接质量,需对冲压过程中的压力进行监测;并将被测值与设定的压力上限和压力下限进行比较,据此判定是否合格。图l为TOX智能压力监控仪硬件系统的结构框图。它以片机为核心,配有压力和位移传感器、信号调理电路、LCD液晶显示电路、按键、RS232和RS485通信接口,以及与PLC连接的输入/输出接口等。
TOX智能压力临控仪除了具有普通智能仪表所具有的测量功能、数据处理功能和通信功能外,还为用户提供了友好的人机交互菜单。通过按键和LCD显示器,可灵活地设定和查询以下信息:测量程序号及对应的压力上、下限值;传感器的类型、规格和灵敏度等;传感器的零点偏移量和允许偏移的最大范围;自动零点校验功能是否启用;通信接口是否启用;通信接口的模式和地址;最新10组测量数据;用户密码;文字种类(中文或英文);设备的维护周期和操作次数等。另外,设有存储器保护功能。
2 控制面板及操作界面
图2所示为TOX智能压力监控仪的控制面板,面板上有1个160×80点阵的LCD显示器和6个按键。LCD显示器每行能显示20个英文或lO个中文符号,共5行;6个按键分别为0、ENTER和ESC。利用这6个按键,用户可以随意切换“测量”和“菜单”界面,进入菜单界面后,用户还可以方便地设定和查询有关信息。
打开电源后,设备将显示版本号,接着进行“传感器校准”(可关闭此项功能),而后进入图3所示的“测量”界面。
在测量界面下,如果接收到来自于PLC的测量命令,或用户按下“F1”或“F2”键,则开始对通道1或通道2的压力进行测量,随后处理和显示测量结果;如果用户按下“ESC”键,则进入网4所示的“主菜单”界面。
进入主菜单界面后,按”键移动光标;按“ESC”键返回到上级菜单(即“测量”菜单);按“ENTER”键进入所选的子菜单。例如,当光标位于“测量程序”选项上时,若按下“ENTER”键,则进入图5所示的“测量程序”输入子菜单。
“测量程序”子菜单共有5个选项,分别是程序号以及通道1和通道2的压力上、下限值(即最小值和最大值),用户选定的设定值也同时给出。同样,按键可以移动光标;按“ESC”键返回到上级菜单(即主菜单);按“ENTER”键进入光标所在位置下级子菜单。例如,当光标位于通道l的“最小值”选项上时,若按下“ENTER”键,则进入图6所示的“最小值”设定界面。
图6中,“30.00”表示通道l的压力最小值是30.00,“_”为光标提示符。如果用户要修改设定值,则可按、键将光标移动到相应的位上,然后再按键修改设定值。例如,当光标在当前位置上时,若按“▲”键,则设定值由30.00变成31.00;若按键,则设定值30.00由变成29.00。这样,只用4个按键,就可以方便地输入设定值。
主菜单下的“传感器配置”、“数据”和“”选项下也嵌套了不同数量的一级、二级甚至多级子菜单,供用户查询、修改数据和配置参数。
由此可见,尽管仪有6个操作按键和1个LCD显示器,但TOX智能压力监控仪仍给操作者提供了友好的操作环境,实现了人机交互。
3 人机交互菜单的设计
本设计中,主菜单和子菜单多达20余页,且有中、英文2种文字供用户选择,从而增大了应用层程序设计的难度。程序采用模块化结构,主要包括以下几个模块:
界面切换控制模块:为按用户要求切换操作界面,定义了一个Page_Point映像寄存器,其值在O~P-l之间变化,P为操作界面的个数。如果Page_Point=O,则LCD显示器上显示第0页窗体(为图3所示的测量界面);如果Page_Point=l,则LCD显示器上显示第1页窗体(为图4所示的主菜单界面)。当用户按下“ENTER”或“ESC”键后,根据选项光标所在的位置修改Page_Point的值,然后更新显示窗体,实现人机交互。
按键扫描模块:对6个操作按键进行扫描,将结果存在Key_Status映像寄存器中。该寄存器有6个有效位,分别是Key_Up、Key_Down、Key_Left、Key_Right、Key_Esc及Key_Enter,依次对应操作面板上的6个按键“ESC”及“ENTER”。如果标志位为l,则意味着对应的按键按下;反之,则松开。
选项管理控制模块:若当前的操作界面属于“选项界面”(图4所示的主菜单界面和图5所示的测量程序子界面均属于选项界面),则按下键,光标“>”所在的位置向上或向下移动l项。为此,定义了一个Option_Point映像寄存器,其值为0~N-1(N为选项个数)。若主菜单有4个选项,则N=4,此时Option_Point为O~3;若测量程序子菜单有5个选项,则N=5,此时Option_Point为0~4。图7为选项管理控制模块的程序流程图。
数据输入模块:若当前的操作界面属于“置数界面”(图6所示的最小值设定界面就属于置数界面),则按下和键,光标“_”所在的位置向左或向右移动1位。为此,定义了一个Bit_Point映像寄存器,用于记录可以修改的数据位所在的位置。按下键,可将当前光标所在数据位上的数值加“l”或减“l”,例如,在图6所示的最小值设定界面中,若按“▲”键,则设定值由30.00变成31.00;若按“v”键,则设定值由30.OO变成29.00。用4个键,即可方便地输入满足用户要求的任何数值。图8为数据输入模块的程序流程图。
利用上述模块,只需少量的程序代码就可以灵活地实现选项、修改数据及切换操作界面等功能。
本设计采用汇编语言编程,所片j单片机为性能较低的PICl6F877A,尽管其程序存储器只有8KB,但却实现了20多页操作界面的显示和切换,以及数十个数据的设定和杳询等人机交互功能,同时还实现了测量、监控和通信功能。
4 结论
嵌入式系统的人机交互技术日趋完善。通过LCD显示器和少量的几个按键,利用软件在嵌入式系统设计中实现参数设定和数据管理等人机交互功能,增强了操作的趣味性和功能性,有助于提高系统的附加值。