摘 要:对仪器仪表中普遍使用的LED键盘显示人机交互技术做了分析,给出一种由智能型LED键盘显示芯片HD7279A构成的人机交互电路。该电路具有接口简单、外围元件少,体积小,功能强的特点,使用该器件可简化仪器仪表中人机界面交互电路的设计。文中给出了HD7279A的主要特性,硬件电路及相应程序。
关键词:智能型 LED键盘显示 人机交互 单片机
1 引言
在仪器仪表电路设计中,人机交互界面是必不可少的环节,现阶段仪器仪表中通常使用的是发光数码管显示器(LED)技术和键盘输入技术,LED显示技术获得广泛应用的原因是:⑴价格低廉;⑵显示信息清晰醒目;⑶对仪器仪表系统资源占用相对较少;⑷能量消耗相对较小,电源电路简单。传统的LED键盘显示人机交互电路通常由以下两种方式构成:⑴采用通用逻辑电路芯片如74LS165、CD4051等构成,此种方法的成本较低,但使用的外围器件数量众多,占用的仪器仪表空间较大,可靠性较差;⑵采用专用的显示芯片或键盘显示接口芯片如MAX7219或Intel 8279等。MAX7219的功能较强但不具备键盘管理功能,键盘电路需另外设计,同时该芯片的价格较高。Intel8279虽是专用的键盘显示接口电路,但却不具备LED显示器的驱动能力,同时其总线接口方式造成接口电路复杂,同时也无法和近年来广为流行的非总线型单片机接口。
鉴于以上原因,这里使用智能型键盘显示控制芯片HD7279A设计成一种适用于仪器仪表的键盘显示电路,该LED键盘显示人机接口电路克服了传统人机交互接口电路的缺点,简化了仪器仪表人机交互软硬件设计。下面首先对HD71279A予以介绍。
2 HD7279A的结构及特点
HD7279A是管理键盘和LED显示器的专用智能控制芯片,该芯片采用串行接口方式,可同时驱动8位共阴极LED数码管或64位独立LED发光二极管,同时能对多达8×8的键盘矩阵的按键盘情况进行监视,具有自动消除键抖动并识别按键代码的功能,从而可以提高CPU的工作效率,同时其串行接口方式又可大简化CPU接口电路的设计,减少软硬件资源的占用。
HD7279A的主要特点如下:
⑴串行接口,无需外围元件可直接驱动LED;
⑵具有控制译码/不译码及消隐和闪烁属性等多种控制指令,编程灵活;
⑶循环左移和循环右移指令;
⑷具有段寻址指令,方便控制独立LED;
⑸具有级联功能,可方便的实现多于8位显示或多于64键的键盘接口;
⑹可接64键控制器,内含去抖动处理,可直接输出键值。
3 人机界面硬件及软件设计
由上述介绍可知HD7279A是一款功能强大的智能型键盘LED显示管理芯片,笔者在研制电子皮带计量控制器中使用HD7279A构成人机界面,该控制器采用8位LED数码管分时显示瞬时流量、本班产量、上班产量等测量结果,并可在键盘控制下显示零点电压、空带信号电压平均值,称重传感器信号电压,速度电压,速度、负载、时间、日期、标定系数、速度截距,速度斜率、速度、电压平均、校零时间、速度电压或频率下限、负载下限、负载上限、起始班时、每班间隔、密码、PID控制参数、定值流量等多个设定参数,本系统还设有1,2,3,4,5,6,7,8,9,0,清零,修改,打印,校零、流量、产量、观测等20个按键,用于输入或修改上述参数,下面给出采用HD7279A设计的键盘显示电路。
采用HD7279A设计的键盘显示硬件电路连接图如图1所示。图1中8个键盘上拉电阻取10KΩ,8个位限流电阻取为20Ω,8个下拉电阻取100KΩ,HD7279A工作时需要外接的RC振荡电路以供系统工作,其典型值分别为R=1.5KΩ,C=15pf,如果芯片无法正常工作,请首先检查此振荡电路且在进行印制电路板布线时,所有元件,尤其是振荡电路的元件应尽靠近HD7279A并尽量使电路连线最短。HD7279A的RESET复位端在一般应用情况下,可以直接与正电源连接,在需要较高可靠性的情况下可以连接外部的复位电路,能直接由CPU控制在上电或RESET端由低电平变为高电平后,HD7279A大约需要经过18-25Ms的时间才会进入到正常工作状态。
图1 电子皮带计量控制器键盘显示电路
HD7279A的键值分布为:右边数第一列为0-7,第二列为8-15,依次类推,本设计中由于共用到20个键,故使用了从右下角开始的S0-S1920个键,其键值与按键的对应关系如表1所示。
表1 键值功能表
本系统使用AT89C52单片机并将单片机的P1.0-P1.3分别与HD7279A的CS、CLK、DATA、KEY相连,AT89C52单片机的晶振取为12MHz,当选取其它的时钟频率则应注意延时时间的选择应满足HD7279A时序要求。
下面给出与上述电路配套的显示与读键值子程序。
内存定义
SDATA DATA 20H;发送数据单元
RDATA DATA 21H;接收数据单元
;位定义
CS BIT P1.0;
CLK BIT P1.1;
DAT BIT P1.2;
KEY BIT P1.3;
;主程序
MAIN:JB P1.3, MAIN;检测按键,无键按下等待
MOV SDATA,#15H;发读键盘指令
ACALL SEND
ACALL RECE
SETB P1.0;置CS高电平
MOV B,#10;十六进制键码转换成BCD码,以备显示
MOV A,RDATA
DIV AB
MOV R1,A
MOV SDATA,#0C9H;发送键码的十位值,按方式1译码下载显示
ACALL SEND
MOV SDATA,R1
ACALL SEND
MOV SDATA,#0C8H;发送键码的个位值
ACALL SEND
MOV SDATA,B
ACALL SEND
SETB P1.0;置CS 高电平
WAIT: JNB P1.3,WAIT
AJMP MAIN
;发送一字节数据子程序,高位在前
SEND:MOV R2,#08H;发送8位
CLR P1.0;
ACALL DEY1;延时50μS
S-LOOP:MOV C,. SDATA.7;输出1位到HD7279的DAT端
MOV P1.2,C
SETB P1.1;置CLK高电平
MOV A, SDATA;待发数据左移
RL A
MOV SDATA,A
ACALL DEY2;延时8μS
CLR P1.1;置CLK低电平
ACALL DEY2;延时8μS
DJNZ R2,S-LOOP;检测8位是否发送完毕
CLR P1.2;发送完毕,DAT端置低,返回
RET
;接收一字节数据子程序,高位在前
RESE: MOV R2,#08H;接收8位
SETB P1.2;DAT端置为高电平,输入状态
ACALL DEY1;延时50μS
R-LOOP:SETB P1.1;置CLK高电平
ACALL DEY2;延时8μS
MOV RDATA,A
RL A;接收数据左移1位
MOV RDATA,A
MOV C, P1.2;接收1位数据
MOV RDATA.0,C
CLR P1.1;置CLK低电平
ACALL DEY2;延时
DJNZ R2,R-LOOP; 接收8位是否发送完毕
CLR P1.2;接收完毕,DAT端重新置成低电平(输出状态)
RET
结束语
利用智能型LED显示键盘控制器,可以构成较复杂的仪器仪表人机显示界面,相对提高人机界面的友好程度,减少对仪器仪表系统软硬件资源的占用,提高仪器工作的可靠性,因而是仪器仪表系统人机界面的一种良好的构成方案。
参考文献
1 李华.MCS系列单片机实用接口技术.北京航空航天大学出版社,1993