深圳电子产品开发,工业控制系统设计
带有微处理器的仪器的操作曾经是通过仪器面板上众多的功能键和数字键来实现人机交互的,程序用查询的方法扫描键盘或响应键盘中断的方法读回键值,然后散转各分支程序去执行相应的功能子程序,完成相应的作业。使用者往往不得不借助厚厚的使用说明书来熟悉、来指南仪器面板上各种按键的定义和操作的方法。随着微电子技术的发展及大屏幕点阵式液晶显示器的出现,使得智能化仪器的操作也向菜单式、傻瓜型迈进。通过液晶屏上的菜单选项,用面板上三四个按键或旋转式光电编码开关,就能完成仪器操作所必需的参数设置、命令执行等必要的人机交互。该类仪器的程序结构也适应了其菜单式"傻瓜"界面的特点,用后台大量的编程工作换取了前台仪器操作的极其简单和方便。本文从软硬件设计的角度,讨论智能仪器中菜单式交互界面形成的原理和实现的方法。
1 交互界面的输入结构
在菜单式界面的智能仪器中,人机交互的指令输入部件可用按键或旋转式光电编码开关。按键由增键、减键和确认键构成(图1) .使用这3 种操作可以用来在液晶显示屏上移动光标、数据输入和操作选定等。增键和减键用于选择菜单中选项时的光标移动,以及在设定数值时对数值大小的增减;确认键用于对选中的选项和设定的数值大小的确定。
图1 按键示意图
按键的功能可以用旋转式光电编码开关来替代。旋转式光电编码开关的功能类似计算机上使用的鼠标,它有3 种操作:"**""右旋"和"按下选定", 可对应着按键输入时的增键、减键和确认键。
图2 是光电编码开关的外形图、电原理图、输出信号真值表和波形图。该开关压下时②和③短路输出,旋转时,由把柄带动穿孔圆盘一起转动。开关内有2 个发光二极管、2 个光敏三极管和1 个穿孔圆盘,圆盘上的穿孔按特定规律分布。光敏二极管接收发光二极管发出的光,形成二路旋转输出信号"输出A"和"输出B".旋转时,当穿孔圆盘上的某个圆孔正对着发光二极管时,发光二极管发出的光通过该圆孔照射到光敏三极管上,三极管导通,输出低电平信号;当圆盘上的所有圆孔都错开发光二极管时,光敏三极管因收不到光信号而截止,输出高电平信号。
图2 光电编码开关
由图2 (c) 真值表可见,其实"输出B"和"输出A"的编码对应着2 位循环码(格雷码) ,循环码的特点是由一个计数状态变到下一个计数状态的过程中,只有一位数码变化,因此在循环码的译码器中,不会产生竞争冒险现象。在智能仪器中微处理器引脚状态变化的中断输入中也不会产生中断事件的竞争。但循环码不能用二进制计算来判别大小和顺序,所以要判别光电编码开关是"**"还是"右旋"时,要引入"输出B"和"输出A"电平的现状态和前状态进行分支逻辑判断,软件编程稍稍复杂一点。
现在很多单片微控制器的I/ O 口线都带有键盘中断功能,图1 所示的按键和图2 所示的旋转式光电编码开关,可通过上拉电阻的形式直接接到这些I/ O 口线上。有操作信号时,口线的电平改变会引起键盘中断的发生,CPU 响应中断后可去处理相应的操作。在微处理器I/ O 口线或外中断口线紧张的情况下,可以如图3 所示,通过I2 C 总线外扩一片串行变并行的PCF8574 芯片,芯片P0~ P7 的8根口线可用作输入或输出;用作输入时,口线电平的变化会引起芯片13 脚电平变低向微处理器申请中断。图3 中RL K 是旋转式光电编码开关,它的"输出A""输出B"和"按下开关"接到了PCF8574 的P4、P5 和P6 ,在笔者研制的"电流互感器伏安特性试验仪"中,PCF8574 的P0~P3 被用作输出,经接插件J9 ,通过光耦去驱动试验电压量程切换的继电器。
图3 节省I/ O 口线的按键输入接口电路