您现在的位置: 通信界 >> 测试仪表 >> 技术正文  
 
测控系统的微机化监控程序设计[图]
[ 通信界 / 佚名 / www.cntxj.net / 2012/3/25 10:59:20 ]
 

引言

监控程序负责系统中全部硬件和软件资源的分配、调度工作,是系统设计中的一个重要组成部分。它提供用户接口, 使用户获得友好的工作环境, 使计算机获得很高的效率和高度的自动化。随着系统结构的日益复杂和功能的全面, 其监控程序的设计难度也越来越大。监控程序的质量直接影响系统的操作和运行,一个高质量的监控程序应是功能齐全、键数合理、操作方便、容错性好。监控程序在一定的意义上就是键盘分析程序,因此如何在面积较小的面板上设计一个功能多、操作简便的键盘操作系统成为智能仪器设计中非常重要的任务之一。

键盘上的按键可分为2类: 单义键和多义键。单义键,是指按键的含义是固定的,一个按键代表一个命令或一个数字,执行一种功能,即一键一义;多义键是指一个按键的键义不是单一的,而是具有多重含义,多个键互相配合才产生一个动作,执行一种功能,即一键多义。下面结合实例介绍这2种键盘监控程序的设计。

1 单义键监控程序的设计

CPU对键盘管理的方式一般有3种,即查询法、中断法和定时查询法。这3种方式的主要差别在于CPU转向键盘处理程序的方法。如果从程序设计逻辑讲,都是“有键按下则转去处理”。因此它们的键盘管理程序是可以相互转化的。下面以查询法为例,介绍一键一义键盘管理程序的设计。

微处理器周而复始地扫描键盘,当发现按键时,首先判别是命令键还是数字键。若是数字键,则把按键读数读入存储器,通常还进行显示;若是命令键,则根据按键读数查阅转移表,以获得处理子程序的入口。设一4×8的键盘,其中下面16个键为数字键,上面16个键为功能键。通过键盘扫描已经获得按键的编码,并且将该编码存储于累加器A中。那么,当键码小于10H时为数字键,否则为功能键。具体程序如下:

MOV R1,A

CLR C

SUBB A,#10H

JC DIGIT

MOV DPTR,#TBJ2

MOV A,R1

ANL A,#0FH

ADD A,A

JMP @A+DPTR

TBJ2: AJMP PROG1

AJMP PROG2

……

AJMP PROGn

DIGIT:……

一键一义键盘管理的核心是一张一维的转移表,在转移表内顺序登记了各个处理子程序的转移命令。

2 多义键监控程序的设计

对于功能复杂的微机化系统,若仍然采用“一键一义”,则按键使用往往过多,不但增加了费用,而且面板难以布置,操作也不方便。因此,有些键盘设计成一键多义方式。在一键多义的情况下,一个命令不是由按键,而是由一个按键序列组成。也就是说,对于一个按键的解释除了本次的按键外,还取决于这之前按了一些什么键。一键多义的监控程序有2种方法,即转移表法和状态转移法。下面对这两种方法进行介绍。

2.1 转移表法实现多义键监控程序

多义键的监控程序仍然可以采用转移表法进行设计,不过这时要用多张转移表。首先,要判断一个按键序列是否构成了一个合法的命令。若已经构成了合法命令,则根据前几个按键把控制引向某张合适的转移表,根据最后一个按键编码查阅该转移表,就找到了要求的子程序入口。

以一个8回路微机温控仪为例。该系统中有6个按键:C(回路号为1~8,第8回路为环境温度补偿,其余为控温点)、P(参数号,有实测值、设定值、P、I、D参数,上下限报警值,输出控制值等8个参数)、 Δ(加1)、Δ(减1)、R(运行)和S(停止运行)。显然,这些按键都是一键多义的。 Δ和Δ键的工作执行与否,取决于前面按过的C和P键;R键的功能执行与否,取决于当前的C值。用转移表法实现这些功能的流程如图1所示。

图1 转移表法实现多义键监控程序流程

从流程图可以看出,用转移表法实现多义键的设计需要两级转移表。

一级转移表

TBJ1 AJMP RUM

AJMP STOP

AJMP INCR

AJMP DECR

AJMP CHAL

AJMP PARA

二级转移表

TBJ2 AJMP C1P0

……

AJMP C1P7

AJMP C2P0

  ……

AJMPC7P7

2.2 状态转移法实现多义键监控程序

状态转移法是整体地来考虑应用系统,把它看作是一个系统,从而引入“状态”的概念。将系统工作过程划分为若干个“状态”,在任一状态下,每个按键都有一个确定的含义,即执行某一个子程序且变迁到下一个状态(称为“次态”,NEXST) 。因此,就需要在存储器内开辟一个单元记住当前状态(称为“现态”,PREST),根据当前状态和当前按键这两个关键词,就能对当前按键的含义作出正确的解释。用状态转移法设计的监控程序,其程序基本框架是相同的,具有通用性强、修改方便、便于阅读的优点。本文结合“多功能波形发生器”应用实例,详细介绍了状态转移法的监控程序设计过程。

2.2.1 键语分析的定义

键语必须有明确的定义, 而且应有一套无二意的语法规则。假设多功能波形发生器的按键如图2 所示,且各按键的定义如下: AMPL(幅度)、FREQ(频率)、FUNC(函数)、OFST(偏移)、MODE(模式)、UNIT(单元号)、ON(开)、OFF(关)、CHS(换符号)、DIG(数字键统称)、MULT(乘法)。

图2 多功能波形发生器的按键

2.2.2 建立键语状态图

用普通语言对全部键语做出详尽准确的规定是很困难的, 可以用键语状态图的方法对全部的键语做出完备的定义。这里用图3所示的键语状态图来描述键语的完备集。状态图中每一个方框表示一个状态(按过一次键), 框内的数字是状态的代号。箭头表示状态变迁的方向, 箭头上的标语是一个按键的代名, 表示变迁的条件, 其中非法键统称为“*”。假设最初开机时初始化使系统处于0态, 只要按过一个键之后, 系统就不可能再处于0态。假定系统现在处于0态,按下AMPL键后系统就转入了1态。在1态中,如果按下CHS或者DIG键就可以进行幅值的设定;如果按下其他的键,则为无效键,系统重新回到0态。

图3 键语状态图

2.2.3 建立键语状态表

根据键语状态图就可以制作出键语状态表。状态表中规定: 当仪器设备处于某一状态(现态)时,若满足一定的条件就必须脱离该状态而进入另一个指定的状态(次态),以及仪器设备所应采取的行动。该系统的部分状态表如表1所列。

表1 键语状态表

对于每个按键, 可以用2个变量描述其特征:

FNKYC = 功能性键码(functional keycode),用来代替每一按键的实际键码编码。功能相同的按键可以赋予相同的FNKYC 值, 例如一切数字键的FNKYC值为1。各按键的FNKYC值如表2所列。

表2中,各按键的FNKYC 值NUMB=数。数字键所对应的NUMB值就是该键所规定的数字, 例如, [3] 的NUMB为3;[GHz] [MHz] [kHz] [Hz] 规定为10、11、12、13;其他键的NUMB值统一规定为0。

表2 按键的FNKYC值对照表

2.2.4 建立状态索引表

根据状态表可以建立状态索引表,状态索引表为两级表。其中,第一级状态索引表中为每一状态的转移命令;第二级状态索引表中,为该状态下按下某一键后进入的次态和执行的子程序号。

如图3所示, 系统共有7 种不同的状态,可以在内存的一块连续空间中存储这7 种状态的特征,这就是第一级状态索引表。而对应于每一状态的相关参数可以用下面几个变量来描述。

① FNKYT: 状态表中所列的功能性键码。将根据实际按下的键的FNKYC 值, 查找状态表中是否有一个与之相符的FNKYT值。

② NEXST: 下一个状态(NEXT STATE)。它指出当某一FNKYC 与FNKYT 相符时, 系统应进入哪一个状态。

③ ACTN: 行动子程序号码。它指出当系统处于某一状态时所应执行的行动。

这3个参量就建立了第二级状态索引表。该系统的状态索引表如图4所示。

图4 状态索引表

2.2.5 程序设计流程

现在可以设计键语分析程序。首先,要有一个识键程序来识别所按下的按键,从所获得的实际键码中求出其对应的FNKYC 和NUMB 值, 这可以利用查表法或适当的算法得到;然后,根据当前的状态PREST在第一级状态索引表中得到对应当前状态的第二级索引表的入口地址,在第二级状态索引表中将FNKYC与表中的FNKYT逐项比较,当二者相同时得到对应该按键的下一个状态NEXST, 以及所对应的行动ACTN; 随后, 把这个NEXST 值替换为当前状态PREST。如果FNKYT为0时始终没有与FNKYC对应的FNKYT,就意味着该FNKYT是一个非法键, 应该不予理睬; 反之, 则是有效键, 程序就转移到相应的子程序去执行。具体设计流程如图5所示。

图5 程序设计流程

3 结论

用状态法进行多义键的设计,有以下几方面的优点:

① 应用一张状态表, 统一处理任何一组按键和状态的组合, 化繁为简, 降低了程序设计的难度, 增强了程序的可读性。

② 翻译、解释按键程序和执行子程序完全分离,避免了两者之间的相互交叉和混淆。

③ 当系统的功能发生改变时, 主控程序的结构不变, 只需对状态表进行修改。

参考文献

[1] 周航慈. 单片机应用程序设计技术[M]. 北京: 北京航空航天大学出版社,1991.

[2] 何立民. 单片机应用系统设计系统配置与接口技术[M]. 北京: 北京航空航天大学出版社,1996.

孙守昌(讲师),主要研究方向为嵌入式系统开发。

 

作者:佚名 合作媒体:不详 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管