监控主程序设计和键盘管理模块设计
时间:2014-08-25 阅读:2616
智能仪器系统软件的构成与设计
智能仪器的系统软件不仅要处理来自键盘、通信接口的命令,实现人机对话、机机对话, 更重要的是它具有实时处理能力,即根据被控过程(对象),实时申请中断,完成各种测量、 控制功能。仪器的功能主要由中断服务程序来实现。
智能仪器系统软件由主监控模块、测量与控制模块、数据处理模块、中断处理模块、通信 模块、键盘显示器管理模块、各种功能模块(子程序块,子程序库)和数据表模块构成。
1.监控主程序设计
监控程序是智能仪器软件中的主线,实现对仪器的全部管理功能。各功能模块均由监控程 序调用并构成有机的整体。监控程序的主要功能如下。
(1) 管理键盘和显示器,按仪器的键入命令转入相应的功能服务程序。
(2) 接收输入/输出接口、内部电路等发出的中断请求信号,按中断优先级的顺序转入相 应的中断服务程序,进行实时测量、控制或数据处理。
(3) 系统的定时器管理。
(4) 仪器自身的检测和故障诊断处理。
(5) 仪器初始化、手动/自动切换控制、电源监测、掉电保护等。
监控程序是整个仪器软件系统的核心部分,其主要任务是接受命令、解释命令并执行命令。 监控程序可分为监控主程序和命令处理子程序两大部分。监控主程序负责识别按键、解释命令 并获得命令处理子程序的入口地址;命令处理子程序的任务则是具体执行命令,完成命令所规 定的各项处理任务。命令处理子程序因智能仪器的不同而异,而监控主程序的结构却具有共性。
智能仪器上电复位后,仪器首*入监控主程序。主监控程序一般都被放在0号单元开始 的内存中,它的任务是识别命令、解释命令,并获得完成该命令的相应模块的入口。如果把整 个软件比作一棵树,则监控主程序就是树干,其余是树枝和树叶。监控主程序起着引导仪器进 入正常工作状态,并协调各部分软硬件有条不紊工作的重要作用。
监控主程序通常包括对系统中可编程器件输入/输出口参数的初始化、自检、调用键盘显 示管理模块及实时中断管理和处理模块等功能。除初始化和自检外,监控主程序一般总是把其 余部分连接起来构成一个无限循环,仪器所有功能都在这一循环中周而复始地有选择地执行。 除非掉电或按复位(RESET)键。图8-12为监控主程序流程图。
上述监控主程序是一种示例,不同的硬件、不同的系统釆取的主监控方法也不相同。在这 种监控系统中,首*入初始化,然后再进行自检,自检后即等待键盘/外设中断,若有中断, 首先区分是键盘中断还是外设。如果是键盘中断,设立键盘服务标志;如果是外设中断,需判 明是手动还是自动,根据相应的状态转入相应的中断服务子程序中。无论是什么中断,执行完 之后都必须返回主监控程序中继续执行主监控程序。编制程序时要注意程序可能产生的各种结 果,防止出现死循环。
2.键盘管理模块设计
智能仪器的键盘可以采用编码式键盘,也可采用软件扫描方式(非编码键盘)。不论采用 哪一种方法,在获得当前按键值后,都要转入相应的键盘服务程序入口,以便完成相应的功能。 各键所能完成的具体功能由设计者根据仪器总体要求,兼顾软件、硬件,从合理、方便、经济 等因素出发来确定。目前常用的两种方法为一键一义和一键多义。
(1) 一键一义键盘管理程序设计方法(直接分析法)
直接分析法即一个按键代表一个确切的命令或一个数字。编程时,只要根据当前按键的编 码,把程序直接分支到相应处理模块的入口,而无须知道在此以前的情况。其软件框图如图8-13 所示。
微处理器平时周而复始地扫描键盘,当发现按键时,首先判别是命令键还是数字键。若是 数字键,则把按键读数存入存储器,通常不进行显示;若是命令键,则根据按键查阅转移表以 获得处理程序的入口。处理程序执行完后继续扫描键盘。直接分析法的核心是一键一义的转移 表。表内顺序登记各个处理子程序的入口。
(2) 一键多义键盘管理程序设计方法
在一键多义的情况下,一个命令不是用一次按键而是由一个按键序组成的。换句话讲’对 一个按键含义的解释除了取决于本次按键之外,还取决于以前按了些什么键。因此对一键多义的监控程序首先要判断一个按键序列是否已构成命令。若已构成命令则执行命令,否则等待重 新输入新的值。
一键多义的监控程序可采用转移表法进行设计,不过这时要用多张转移表,组成一个命令 的前几个按键起着引导作用,把控制引向某张合适的转移表,根据zui后一个按键查阅该转移表 就可以找到要求的子程序入口。按键的管理可以用查询式,也可以用中断方式,由于有些按键 功能往往需执行一段时间,这时若用查询式处理键盘会影响整个仪器实时处理功能。另外,智 能仪器监控程序具有实时性,一般键盘中断不应中断正进行的测量控制运算。因此通常把键盘 服务程序设计成比过程中断低一级的中断源。