HD7279A的原理与应用
扫描二维码
随时随地手机看文章
HD7279A硬件电路图HD7279A是一种管理键盘和LED显示器的专用智能控制芯片。它能对8位共阴极LED显示器或64个LED发光管进行管理和驱动,同时能对多达8×8的键盘矩阵的按键情况进行监视,具有自动消除键抖动并识别按键代码的功能,从而可以提高CPU工作的效率。HD7279A和微处理器之间采用串行接口,其接口电路和外围电路简单,占用口线少,加之它具有较高的性能价格比,因此,在微型控制器、智能仪表、控制面板和家用电器等领域中日益获得广泛的应用。
一、 引脚说明与接口电路
279A的硬件电路如图1所示,它共有28个引脚。 RC引脚用于连接HD7279A的外接振荡元件,其典型值为R=1.5kΩ,C=15pF。RESET为复位端。该端由低电平变成高电平并保持25ms即复位结束。通常,该端接+5V即可。DIG0~DIG7分别为8个LED管的位驱动输出端。SA~SG分别为LED数码管的A段~G段的输出端。DP为小数点的驱动输出端。HD7279A片内具有驱动电路,它可以直接驱动1英吋及以下的LED数码管,使外围电路变得简单可靠。 DIG0~DIG7和SA~SG同时还分别是64键盘的列线和行线端口,完成对键盘的监视、译码和键码的识别。在8×8阵列中每个键的键码是用十六进制表示的,可用读键盘数据指令读出,其范围是00H~3FH。 HD7279与微处理器仅需4条接口线,其中CS为片选信号(低电平有效)。当微处理器访问HD7279A(读键号或写指令)时,应将片选端置为低电平。DATA为串行数据端,当向HD7279A发送数据时,DATA为输入端;当HD7279A输出键盘代码时,DATA为输出端。CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。 (图1 HD7279A硬件电路图)
二、 电特性
表 1
三、 控制指令
1 HD7279A指令系统由6条纯指令、7条带数据指令和1条读键盘指令组成。6条纯指令为:
(1) 复位指令。指令代码为A4H,其功能为清除所有显示,包括字符消隐属性和闪烁属性。
(2) 测试指令。指令代码为BFH,其功能为将所有的LED点亮并闪烁,可用于自检。
(3) 左移指令。指令代码为A1H,其功能为将所有的显示左移1位,移位后,最右位空(无显示),不改变消隐和闪烁属性。
(4) 右移指令。指令代码为A0H,其功能与左移指令相似,只是方向相反。
(5) 循环左移指令。指令代码为A3H,其功能为将所有的显示循环左移1位。移位后,最左位内容移至最右位,不改变消隐和闪烁属性。
(6) 循环右移指令。指令代码为A2H,其功能与循环左移指令相似,只是方向相反。
2 带数据指令均由双字节组成,它们是:
(1) 按方式0译码下载指令
显示位8为最高位,参见图1。 第2字节为显示内容,其中DP为小数点控制位,DP=1,小数点显示;DP=0,小数点熄灭。 d3 d2 d1 d0为数据,按方式0译码时数据和显示的关系如下:
[!--empirenews.page--]
该指令和按方式0译码下载指令的含义基本相同。按方式1译码时数据和显示的关系如下:
XX:无影响。
该指令的作用是点亮某个LED数码管中的某一段或64个LED发光管中的某一个。d0~d5的范围是00H~3FH,所对应的段如下:
XX:无影响。
该指令的作用是关闭某个数码管中的某一段,其对应关系同段点亮指令。
3? 读取键盘指令:
该指令的作用是读取当前的键盘代码。与其他带数据的指令不同,它的第2个字节不是写入HD7279A的数据,而是从HD7279A读回的按键代码。如前说述,当有键按下时其范围是00H~3FH;而无键按下时代码是FFH。
[!--empirenews.page--]
四、 时序
(1) 纯指令时序:微处理器发出8个CLK脉冲,向HD7279A传送8位指令。DATA引脚为高阻状态,如图2所示。
(2) 带数据指令时序:微处理器发出16个CLK脉冲,前8个向HD7279A传送8位指令;后8个向HD7279A传送8位数据。DATA引脚为高阻状态,如图3所示。
(3) 读键盘指令时序:微处理器发出16个CLK脉冲,前8个向HD7279A传送8位指令, DATA引脚为高阻状态;后8个由HD7279A向微处理器返回8位按键代码,DATA引脚为输出状态。在最后1个CLK脉冲的下降沿DATA引脚恢复高阻状态,如图4所示。
五、 几点说明
1?证正确的时序是HD7279A正常工作的前提条件。当选定了HD7279A的振荡元件RC和晶振之后,应调节延时时间,使时序中的T1~T8满足表2所列要求。由表2所列的数值可知,HD7279A时序规定的时间范围很宽,达10~50倍,很容易满足,但为了提高微处理器访问HD7279A的速度,在要求系统运行速度较快时,应仔细调试HD7279A的读写程序,使其运行时间接近最短。
2 微处理器通过KEY引脚电平来判断是否有键按下,在使用查询方式管理键盘时,该引脚接至微处理器的1位I/O端口;如果使用中断方式,该引脚应接至微处理器的外部中断输入端。同时应将该中断触发控制位设置成下降沿有效的边沿触发方式。若置成电平触发方式,则应注意在按键时间较长时可能引起的多次中断问题。
3? HD7279A没有提供组合键功能。如果某些场合确需双键组合使用,可在微处理器某位I/O引脚接入一键,与HD7279A所连键盘共同组成双键功能。
4? 图1电路中有3种电阻:阻值为200Ω的电阻是限流电阻,用来限制LED数码管的电流。在使用中不应为了过分追求数码管的亮度而任意减小其电阻值,以防HD7279A芯片过热烧坏。阻值为100kΩ和10kΩ的电阻分别称为下拉电阻和位选电阻,如果HD7279A仅用于显示器管理,则这两种电阻都可以去掉。
5? HD7279A的3,5,26脚均为空闲引脚,一律悬空。
六、 HD7279A与AT89C51的接口程序
这里以HD7279A与AT89C51的接口电路为例,给出1个包括纯指令、带数据指令和读键盘指令的程序实例。该程序对键盘进行监视,当有键按下时读取按键代码并将其显示在LED显示器上。接口电路如图5所示,其中HD7279A的外接振荡元件使用典型值。AT89C51的晶振频率为12MHz。
[!--empirenews.page--]
接口程序实例:
MOV P1,#0F9H;I/O口初始化
ACALL DEY25;等待25ms复位时间
MOV 029H,#0A4H;发复位指令
ACALL SEND
SETB P1.0;置CS高电平
MAIN: JB P1.3, MAIN;检测按键,无键按下等待
MOV 029H,#15H;发读键盘指令
ACALL SEND
ACALL RECE
SETB P1,0;置CS高电平
MOV B,#10;十六进制键码转换成BCD码, ;以备显示
MOV A,028H
DIV AB
MOV R1,A
MOV 029H,#0C9H;发送键码的十位值,按 ;方式1译码下载显示
ACALL SEND
MOV 029H,R1
ACALL SEND
MOV 029H,#0C8H;发送键码的个位值,按 ;方式1译码下载显示
ACALL SEND
MOV 029H,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(T1)
S_LOOP:MOV C,029H.7;输出1位到HD7279A的 ;DATA端
MOV P1.2,C
SETB P1.1;置CLK高电平
MOV A,029H;待发数据左移
RL A
MOV 029H,A
ACALL DEY2;延时8μs(T2)
CLR P1.1;置CLK低电平
ACALL DEY2;延时8μs(T3)
DJNZ R2,S_LOOP;检测8位是否发送完毕
CLR P1.2;发送完毕,DATA端置低,返回
RET
RESE: MOV R2,#08H;接收8位
SETB P1.2;DATA端置为高电平,输入状态
ACALL DEY1;延时50μs(T5)
R_LOOP:SETB P1.1;置CLK高电平
ACALL DEY2;延时8μs(T6)
MOV 028H,A
RL A;接收数据左移1位
MOV 028H,A
MOV C,P1.2;接收1位数据
MOV 028H.0,C
CLR P1.1;置CLK低电平
ACALL DEY2;延时8μs
DJNZ R2,R_LOOP;接收8位是否发送完毕
CLR P1.2;接收完毕,DATA端重新置成低电平(输出状态)
RET延时子程序略。MES
参考文献
1 何立民?MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,1990
2 王幸之?单片机应用系统抗干扰技术.北京:北京航空航天大学出版社,2000