P89C51RD2的可定制人机交互界面设计

技术分类: 工业电子  | 2008-07-16
中电网 | 作者:广东工业大学 张海雄 刘建群 罗继合 余孝伟

  引 言

  随着社会需要和科学技术的发展,产品的竞争愈来愈激烈,更新的周期愈来愈短,因而要求设计者能很快地设计出新产品;而在产品的整体设计中,人机交互界面的设计往往占据着很大一部分工作,这样,不但极大地增加了产品的开发成本而且延长了产品的上市周期。本文论述的基于P89C51RD2的人机交互界面是一种界面可定制、结构紧凑、价格低廉、简单易用、性能优良的通用型人机交互界面,能很好地解决上述问题。

  1 系统工作原理

  1.1 工作原理

  按照实际应用中控制系统的需要及控制系统与人机交互界面的约定,通过PC机上的可视化人机界面定制软件,定制好整个界面信息,再把定制好的界面信息下载到人机交互界面系统中,就可以轻松地实现人机界面的定制。在应用中,人机交互界面通过串行接口与控制系统进行交互,发送按键等信息给控制系统,并接收所需的可变信息,以完成人机交互。

  现以空压机控制器的部分人机界面为例来说明相关概念,界面系统示意图如图1所示。相关概念说明如下:

界面系统示意图

  ①屏幕,即LCD显示区,由一个或多个屏幕项组成;

  ②屏幕项,即屏幕里面的按其显示内容的性质差异来划分的一个个整体单元,如文本屏幕项等;

  ③屏幕项的分类,按其显示内容的性质差异分为文本、整型、浮点型、枚举型、图形等。

  整个人机界面系统由一个个存在链接关系的屏幕构成,而每个屏幕又由一个或多个屏幕项组成。各屏幕项有其自身的属性,也存在着某些相互的链接关系(例如,由某个屏幕项链接到另外一个屏)。这样,通过对各屏幕项的合理组织而构成一个链表网络,再通过对此链表网络的操作来实现人机界面的操作,即屏幕的显示操作。

  1.2 系统的工作过程

  系统的软件部分由用户引导程序和应用程序组成。系统运行后,由用户引导程序决定是执行界面信息的更新还是正常运行。若执行界面信息的更新,则系统通过串行接口从上位机接收界面定制信息,并通过在应用编程(IAP)功能保存所接收的信息,然后通过本地读取新的界面定制信息建立链表网络;若正常运行,则直接从本地读取旧的界面定制信息建立链表网络。应用程序实现的功能包括按键的输入、界面的显示及与控制系统的通信。

  2 系统硬件设计及电路原理图

  本系统采用Philips公司功能强大、资源丰富的P89C51RD2单片机作为微控制器,通过扩展液晶模块及按键模块来构成人机交互界面。系统的硬件电路原理如图2所示。

系统的硬件电路原理

  2.1 P89C51RD2单片机简介

  P89C51RD2是Philips公司内核基于8位80C51单片机的派生产品,在完全保留80C51指令系统和硬件结构的大框架下,进行了多方面的加强、扩展和创新。P89C51RD2具有64 KB并行可编程的非易失性Flash程序存储器,并可实现对器件串行在系统编程和在应用中编程。

  2.2 液晶显示模块

  本系统采用的是OCM12864图形点阵液晶显示模块。OCM12864液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接相连;具有8位标准数据总线、6条控制线及电源线。

  2.3 按键输入模块

  根据系统的需要,系统至少需要设定如下6个屏幕操作按键:左、右、上、下、换屏、确定按键。其中,左、右键用于切换屏幕项;上、下键用于修改可变屏幕项;确定键用于产生所选屏幕项对应的功能动作;换屏键用于进入所选中项的链接屏幕,若当前屏幕没有选中项,则进入首项链接的屏幕。当然,可以根据需要扩充数字按键及功能按键。

  本系统采用普通的矩阵式按键结构,也称“行列式键盘结构”。系统中设计4行4列共16个键,只占用8根I/O口线,键数多而占用I/O口线少。除上述6个屏幕操作按键外,余下的10个键可由用户根据需要定制功能,如数字键或功能键。

  3 系统软件设计

  由于系统的功能实现不是特别复杂,故采用基于前后台的传统的控制程序设计方法。系统的程序流程如图3所示。

系统的程序流程

  3.1 用户引导程序设计

  由系统的程序流程可知,用户引导程序在系统上电后执行。首先它检查是否需要下载定制界面信息,当检查到需要下载时,便接收主机经串口传来的定制界面数据,启动IAP功能,对Flash进行操作,把接收到的数据存入预定的位置。接着进入界面系统构建阶段。若没有下载请求,就直接进入界面系统构建阶段。

  在界面系统构建阶段,通过读取预定位置处的信息,建立一个链表风格。基于这个链表网络的操作也就是苦于界面系统的操作。

  3.1.1 相关设定

  屏幕项组成:显示信息(如显示位置、类型、内容等)和链接信息(此项所链接的屏等)。综合各方面的需要,设定主要相关数据结构如下:

  其中,back、ahead用于构建屏幕项的双向循环链表;next用于构建链接屏的单向循环链表;init用于原始的屏与屏的链接。

0
0
(请您对文章做出评价)
1】【2】【3】【4
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

  • 博客推荐

  • 论坛推荐

  • 在线研讨会