键盘显示专用器件HD7279A的接口设计
扫描二维码
随时随地手机看文章
传统的键盘显示驱动器件(如INTEL8279)通常采用并行接口,占用单片机至少10个I/0端口,因此该键盘显示驱动器不适用于单片机资源紧张的应用。而改进的采用SPI(Serial PeripIleral Interface)串行总线的ZLG7289器件与采用I2C(Intel IC Bus)串行总线的ZLG7290器件均须接入独立的晶体振荡器才能工作,不能直接支持RC振荡器电路,复位端必须接RC复位电路才使器件可靠复位,且片选端CS一般不可直接接地,否则显示可能出现闪烁,软件延时调试比较困难。而键盘显示驱动专用器件HD7279A则不存在这样的问题,能够稳定可靠工作,外围电路简单,可广泛应用于仪器仪表、工业控制器、条形显示器、控制面板等。这里给出了HD7279A接口的典型应用设计。
2 HD7279A简介
HD7279A是一款具有简单SPI串行接口的器件,可直接驱动8位共阴式数码管(或64个独立的LED),管理多达64键键盘,单片即可完成LED显示和键盘接口的全部功能,大大简化电路设计,占用单片机资源极少(最少2线),完全免调试,外围电路更简单。HD7279A内部含有译码器可直接接收BCD码或16进制码,也可不译码,并同时具有两种译码方式。此外,该器件还具有多种控制指令,诸如消隐,闪烁,左移,右移和段寻址等,显示控制方式灵活,其段寻址能力可用于独立的LED显示或信息指示灯控制。图l为HD729A的引脚配置,其各引脚功能描述如表1所列。HD7279A具有片选信号,可方便实现高于8位的显示或高于64键的键盘接口,采用多片级联,对片选信号进行译码即可实现。当应用系统中只有一片HD7279A时,片选端CS可直接接地,图2为其典型应用电路。
应用中,未用的键盘或LED数码管均可省去,而且互不影响。如果不用键盘,典型电路中8只10 kΩ位选电阻和8只100 kΩ下拉电阻均可省去,如果仅接下一个按键,则8只100 kΩ下拉电阻必须全部连接。除非不接LED,否则8只200 Ω限流电阻均不能省去。外接RC振荡电路的典型值为:R=1.5 kΩ,C=15 pF。下拉电阻与位选电阻的阻值应遵循一定的比例关系。在不影响显示的情况下,下拉电阻应尽可能小,大大提高键盘抗干扰能力。驱动大功率的LED时需增加驱动电路,或尽量采用高亮度LED以简化设计。复位端RESET也可由单片机直接控制以增加可靠性,但需占用单片机资源,因此应根据实际应用要求选择最佳连接方式。因为HD7279A采用动态扫描方式,一般电流较大.故须在靠近电源端并联去耦电容以减少于扰,该电容典型值为100μF。
3 HD7279A的工作原理
HD7279A最显著的优点是与单片机的接口简单,最多只需5条连接线,分别是复位端RESET,片选输入端CS,同步时钟输入端CLK,数据输入输出端DATA和按键有效输出端KEY。在一般应用系统中,RESET可直接接电源,当应用系统中只有一片HD7279A器件时,CS也可以直接接地,此时只需占用3条单片机的I/O端口线,如果应用系统中没有键盘,仅具有显示功能,或者即使有键盘,但单片机软件任务不复杂,均可不接KEY线,使用定时读取键盘键值代码的方法,则此时只需占用2条单片机的I/0端口线。
HD7279A与单片机采用SPI串行接口方式连接,共有3种类型16条命令格式,即不带数据的纯指令,带数据的指令和读键盘键值代码指令。
(1)复位(清除)指令A4H 该指令清除所有显示,所有设置的字符消隐、闪烁等属性也一并清除,实际上电和系统上电初始化后所处状态完全相同,相当于初始化命令。该指令为纯指令。
(2)下载数据且按方式0译码指令该指令第一字节数据是命令,其中a2,al,a0是8位LED的某一位的二进制编码。第二字节数据(D0~D7)的第D7位DP表示是否显示LED的小数点,DP=l显示,否则不显示;D6~D7是X位,是无关位;D3~D0分别为d3,d2,d1,dO,这4位按照方式0译码规则在该位LED显示某个数字(0~9)或符号(H,E,L,P,一,空)。
(3)读键盘键值代码指令15H该指令读取键盘键值代码,第一字节数据D7~D0是从单片机流向HD7279A的命令,第二字节数据D7~D0是从HD7279A流向单片机的键值代码,其值的范围是OOH~3FH:共64个,无有效按键时读出的键值代码是0FFH。其余指令均与上述3条指令类似。图3为SIP/串行接口时序。[!--empirenews.page--]
4 HD7279A典型应用
4.1 硬件设计
以基于单片机的医疗设备控制系统中的键盘显示模块为例,该模块中HD7279A器件与单片机AT89C52只有3条线相连,如图4所示,其中3引脚插座J1是单片机AT89C52与HD7279A的连接线.占用单片机的3条I/0端口线:P1.7/CLK是单片机产生的控制同步时钟,P1.6/CS是HD7279A的片选线;P1.5/DATA是命令数据输出/输入线。键盘中断线KEY悬空,CS端由单片机控制是基于省电考虑,也可接地。HD7279A器件控制4个LED数码管动态显示,并监测16键键盘。CLK时钟频率约100 kHz,由单片机编程延时决定。在CLK的同步时钟作用下,控制命令、显示数据以及采用查询方式读取键盘键值代码数据等均由DATA端输入/输出。采用查询方式读取键值代码可节省一条单片机的I/0端口线,但需占用较多软件资源,由于该实例中单片机的任务并不复杂,因此每间隔30 ms读取一次键值代码。
图4中DIG4~DIG7既是4位共阴式数码管位选控制线,又是键盘列扫描线。SSA~SSG,SDP共8条线是4位数码管的段选控制线,分别通过200Ω的限流电阻与HD7279A器件的SA~SG,DP相连接,其中SSD~SSG同时为键盘的行扫描线。排电阻RX1是8×lO kΩ的下拉电阻,不可省去。连接到HD7279A器件RC端的振荡电路中,电阻R13=1.5 kΩ,电容C2=15 pF都是必须的,且R13在1~2 kΩ的阻值范同内变化,C2在10P~20 pF范围内变化时,该电路均能稳定工作,而在此范围之外有可能导致LED意外闪烁或响应键盘不灵敏,需要注意的是R13与C2必须尽量靠近HD7279A器件的RC端放置,以防止相互干扰。Cl=100μF,为滤波电容,有利于降低LED大电流工作对电源的冲击。LDl~LD4选用4位独立共阴式高亮度数码管LED,HD7279A采用动态扫描方式控制LED的显示,因此应该将4位不显示位全部消隐,进一步提高亮度。为了使4位LED全亮并保证足够的亮度,整个显示模块的工作电流降低到50 mA,可以将8个限流电阻增大到250~270Ω。需要注意的是HD7279A不具有双键锁定功能,因此在需要双键锁定功能的应用场合,可利用另外的单片机的I/O线与HD7279A器件联合判定。
由于HD7279A与单片机采用串行接口(最少2线),对键盘的行列监控扫描线与显示控制的位选段选线共用,外围元件少,元件取值范围较宽,工作电流较小,工作稳定可靠,因此接口电路设计简单简洁,操作方便,性价比极高。
4.2 软件设计
针对图4中的键盘显示模块,给出了图5所示的软件编程流程图。常规任务是指单片机应用系统需要执行的其他任务,一次执行时间不超过20 ms;显示任务是指单片机发送给HD7279A器件的显示或控制命令,执行时间不超过5 ms;键盘一次按下保持时间一般在60 ms以上,而定时读取键值代码的时间间隔大约为30 ms,因此只要合理安排软件执行时序,则常规任务、显示任务和键盘操作就不会产生任何冲突,而且不会漏掉任何一次按键动作。
5 结语
键盘显示专用器件HD7279A与单片机的连接采用串口方式,占用资源很少,与键盘和显示器件的连接简单,控制命令丰富,显示方式多样,易于线路板布局,价格低廉,软件结构清晰易学,是一款性价比极高的器件,因此广泛应用于仪器仪表开发。