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与单片机的连接采用串口方式,占用资源很少,与键盘和显示器件的连接简单,控制命令丰富,显示方式多样,易于线路板布局,价格低廉,软件结构清晰易学,是一款性价比极高的器件,因此广泛应用于仪器仪表开发。