基于状态分析的键盘管理软件设计_第1页
基于状态分析的键盘管理软件设计_第2页
基于状态分析的键盘管理软件设计_第3页
基于状态分析的键盘管理软件设计_第4页
基于状态分析的键盘管理软件设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于状态分析的键盘管理软件设计 摘要:介绍一种基于状态分析的人机交互接口设计方法,提出运用状态分析法设计人机接口的几个关键步骤。运用此方法,可以很方便、快速地设计出各类人机交互接口。 关键词:状态分析 状态转换 人机接口众所周知,人机交互接口的设计是单片机应用系统设计中的一个重要的组成部分。随着单片机技术的发展及其在各个领域的广泛应用,以单片机为核心组成的应用系统的功能越来越强大。如何把这些功能在机内有序地组合起来,如何快捷有效地设计出方便使用的人机交互接口已成为单片机应用系统开发中的一个重要研究课题。本文介绍一种人机交互接口的设计方法状态分析法。实践证明:运用此方法设计人机交互接口,具有编程

2、简单、思路清晰、可维护性和可扩充性强的优点。1 状态分析法及其设计步骤以具有4个按键的键盘为例说明状态分析法及其设计过程。设一个应用系统包含一个含有4个按键的键盘,用户通过对这4个按键的操作,实现功能切换和参数设置。在机内如何有序地组织这些功能,如何根据用户不同的操作习惯方便地改变这些组织方式,当用户在某一时刻按下某一按键时,系统能正确地执行相应的功能,是要解决的问题。状态分析法的基本思想是:在键盘按键不太多的情况下,给每一个按键分配一个状态变量(占1字节),每个状态变量共有256种状态(0255),可根据需要任意选用,每一个状态对应一种功能,样,一个按键最多可实现256种功能。在某一时刻,当

3、用户按下该键,希望其执行某项功能时,只要保证在用户按下该键之前,该键处于相应的状态即可。这样就实现了通过控制按键状态变量的状态来达到对其功能控制的目的。状态分析法设计人机交互接口主要包括以下几个步骤:系统分析,编写操作说明书或建立操作流程图;根据操作说明书或操作流程图,给每一个按键进行功能分配;对每个按键进行状态分析,为每个按键建立状态-功能表;根据操作说明书或操作流程图、状态-功能表建立状态转换图;根据状态转换图编制软件,上机调试。2 应用举例以“多功能数字钟”为例,详细说明状态分析法在人机交互接口设计中的应用。设计一多功能数字钟,要求:有记时,校时功能;具有日历显示,日期调整功能;具有定时

4、报警功能。详细设计过程如下:2.1 系统分析,建立操作流程图根据分析,该系统具有三大功能。校时、日期调整和定时时间调整功能需要由键盘来设定。其中时间调整功能分为时高位、时低位和分高位、分低位调整,日历调整功能分为月份调整和日期调整,定时时间设定功能分为时高位、时低位和分高位、分低位的设定。通过分析可知,该系统主要有三个界面:时间显示界面、日期显示界面、定时时间设定界面。我们采用4个按键的键盘来实现上述功能,4个按键分别标号为1,2,3,4号键。操作流程如图1(a)、(b)所示,其中图1(b)是从图1(a)分离出来的子图。2.2 按键功能分配,建立状态-功能表根据对系统的分析,为每个按键分配的按

5、键状态与按下该键执行的相应功能的对应关系如下:(a)1号键状态-功能1进入时高位设置状态;2进入时低位设置状态;3进入分高位设置状态;4进入分低位设置状态;5进入月份设置状态;6进入日期设置状态;7进入定时时高位设置状态;8进入定时时低位设置状态;9进入定时分高位设置状态;10进入定时分低位设置状态;(b)2号键状态-功能1进入时间编辑状态;2进入日历编辑状态;3进入定时编辑状态;5设置时低位,时高位加1;6设置时低位,时低位加1;7设置分高位,分高位加1;8设置分低位,分低位加1;9设置月份,月份加1;10设置日期,日期加1;11设置定时时高位,时高位加1;12设置定时时低位,时低位加1;1

6、3设置定时分高位,分高位加1;14设置定时分低位,分低位加1;(c)3号键盘状态-功能5设置时高位,时高位减1;6设置时低位,时低位减1;7设置分高位,分高位减1;8设置分低位,分低位减1;9设置月份,分低减1;10设置日期,日期减1;11设置定时时高位,时高位减1;12设置定时时低位,时低位减1;13设置定时分高位,分高位减1;14设置定时分低位,分低位减1。(d)4号键状态-功能1显示日历;0恢复时间显示。2.3 建立状态转换图根据操作流程图和状态-功能分配表建立状态转换图,如图2所示。2.4 编制软件键盘处理程序采用Franklin C51编写,部分源代码如下:byte key_valu

7、e; /*定义键值变量,用于识别按键*/byte key1_state,key2_state,key3_state,key4_state;/定义按键状态变量,用于表示按键状态*/void key_do() /*键盘处理函数*/switch(tey_value)/*根据按键值,执行相应的按键处理函数*/case 1:key1_do(); /*按下1号键时调用1号键处理函数*/break;case 2:key2_do(); /*按下2号键时调用2号键处理函数*/break;case 3:key3_do(); /*按下3号键时调用3号键处理函数*/break;case 4:key4_do(); /*

8、按下4号键时调用4号键处理函数*/break;default:break;key_value=0; /*执行完相应的功能后,按键值清零,等待下次按键*/void key4_do() /*4号键处理程序*/switch(tey4_state)case 1:display_date(); /*显示日期*/key2_state=0; /*保证此时安下2号键时无效*/key4_state=0; /*保证下次按4号键时,恢复到初始状态*/break;case 0:display_time(); /*恢复时间显示*/key2_state=1; /*恢复2号键初始状态*/key4_state=1; /*恢复

9、4号键初始状态*/key1_state=0; /*恢复1号键初始状态*/key3_state=0; /*恢复3号键初始状态*/break;default:break;void dey1_do() /*1号键处理函数*/switch(tey1_state)/*根据1号键的当前状态执行相应的功能*/case 1:display_time();/*显示时间界面*/key1_state=2; /*保证下次按1号键时,进入时低位设置状态*/key2_state=5; /*保证下次按2号键时,设置时高位,执行时高位加1操作*/key3_state=5; /*保证下次按3号键时,设置时高痊,执行时高位减1操

10、作/*key4_state=0; /*保证下次按4号键时,返回时间显示界面/*flash(H_hour); /*时高位闪烁,告知用户当前处于时高位设置状态*/break;cese 2:key1_state=3; /*保证下次按1号键时,进入分高位设置状态*/key2_state=6; /*保证下次按2号键时,设置时低位,执行时低位加1操作*/key3_state=6; /*保证下次按3号键时,设置时低位,执行时低位减1操作*/key4_state=0; /*保证下次按4号键时,返回时间显示界面*/flash(L_hour); /*时低位闪烁,告知用户当前处于时低位设置状态*/break;case 3:/*.根据状态转换图,用与上面同样的方法编号按键在每个状态下对应的处理程序*/default:break;void key2_do() /*2号键处理函数*/./*根据状态转换图,用与编写key1_do()同样的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论