欢迎来到天天文库
浏览记录
ID:26333665
大小:137.00 KB
页数:8页
时间:2018-11-26
《基于状态分析的键盘管理软件设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于状态分析的键盘管理软件设计 摘要:介绍一种基于状态分析的人机交互接口设计方法,提出运用状态分析法设计人机接口的几个关键步骤。运用此方法,可以很方便、快速地设计出各类人机交互接口。 关键词:状态分析状态转换人机接口众所周知,人机交互接口的设计是单片机应用系统设计中的一个重要的组成部分。随着单片机技术的发展及其在各个领域的广泛应用,以单片机为核心组成的应用系统的功能越来越强大。如何把这些功能在机内有序地组合起来,如何快捷有效地设计出方便使用的人机交互接口已成为单片机应用系统开发中的一个重要研究课
2、题。本文介绍一种人机交互接口的设计方法——状态分析法。实践证明:运用此方法设计人机交互接口,具有编程简单、思路清晰、可维护性和可扩充性强的优点。1状态分析法及其设计步骤以具有4个按键的键盘为例说明状态分析法及其设计过程。设一个应用系统包含一个含有4个按键的键盘,用户通过对这4个按键的操作,实现功能切换和参数设置。在机内如何有序地组织这些功能,如何根据用户不同的操作习惯方便地改变这些组织方式,当用户在某一时刻按下某一按键时,系统能正确地执行相应的功能,是要解决的问题。状态分析法的基本思想是:在键盘按键不太
3、多的情况下,给每一个按键分配一个状态变量(占1字节),每个状态变量共有256种状态(0~255),可根据需要任意选用,每一个状态对应一种功能,样,一个按键最多可实现256种功能。在某一时刻,当用户按下该键,希望其执行某项功能时,只要保证在用户按下该键之前,该键处于相应的状态即可。这样就实现了通过控制按键状态变量的状态来达到对其功能控制的目的。状态分析法设计人机交互接口主要包括以下几个步骤:①系统分析,编写操作说明书或建立操作流程图;②根据操作说明书或操作流程图,给每一个按键进行功能分配;③对每个按键进行
4、状态分析,为每个按键建立状态-功能表;④根据操作说明书或操作流程图、状态-功能表建立状态转换图;⑤根据状态转换图编制软件,上机调试。2应用举例以“多功能数字钟”为例,详细说明状态分析法在人机交互接口设计中的应用。设计一多功能数字钟,要求:①有记时,校时功能;②具有日历显示,日期调整功能;③具有定时报警功能。详细设计过程如下:2.1系统分析,建立操作流程图根据分析,该系统具有三大功能。校时、日期调整和定时时间调整功能需要由键盘来设定。其中时间调整功能分为时高位、时低位和分高位、分低位调整,日历调整功能分为
5、月份调整和日期调整,定时时间设定功能分为时高位、时低位和分高位、分低位的设定。通过分析可知,该系统主要有三个界面:时间显示界面、日期显示界面、定时时间设定界面。我们采用4个按键的键盘来实现上述功能,4个按键分别标号为1,2,3,4号键。操作流程如图1(a)、(b)所示,其中图1(b)是从图1(a)分离出来的子图。2.2按键功能分配,建立状态-功能表根据对系统的分析,为每个按键分配的按键状态与按下该键执行的相应功能的对应关系如下:(a)1号键状态-功能1——进入时高位设置状态;2——进入时低位设置状态;3
6、——进入分高位设置状态;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——设置定时时高
7、位,时高位加1;12——设置定时时低位,时低位加1;13——设置定时分高位,分高位加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—
8、—恢复时间显示。2.3建立状态转换图根据操作流程图和状态-功能分配表建立状态转换图,如图2所示。2.4编制软件键盘处理程序采用FranklinC51编写,部分源代码如下:bytekey_value;/*定义键值变量,用于识别按键*/bytekey1_state,key2_state,key3_state,key4_state;/定义按键状态变量,用于表示按键状态*/voidkey_do(){/*键盘处理函数*/switch(tey_valu
此文档下载收益归作者所有