可编程数码管/键盘串行接口芯片HD7279A的原理与应用

网友投稿 591 2022-11-05

可编程数码管/键盘串行接口芯片HD7279A的原理与应用

1 主要特性

HD7279A是比高公司生产的单片具有串行接口、可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时可连接多达64键的键盘矩阵,一片即可完成LED显示及键盘接口的全部功能。HD7279A和微处理器之间采用串行接口,其接口和外围电路比较简单,且占用口线少,加之它具有较高的性能价格比,因此,在微型控制器、智能仪表、控制面板和家用电器等领域获得了日益广泛的应用。

HD7279A的主要特点如下:

●带有串行接口,无需外围元件便可直接驱动LED;

●各位可独立控制译码/不译码、消隐和闪烁等属性;

●具有(循环)左移/(循环)右移指令;

●具有段寻址指令,可方便地用来控制独立的LED显示管;

HD7279A一共有28个引脚,各引脚的主要功能如下:

DIG0~DIG7:8个LED管的位驱动输出端;

SA~SG:LED数码管的A段~G段的输出端;

DP:小数点的驱动输出端;

HD7279A的控制指令分为纯指令和带有数据的指令两大类,以下分别给予介绍。

3.1 纯指令

3.2 带有数据的指令

带有数据的指令包括以下5种:

D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 0 a2 a1 a0
D7 D6 D5 D4 D3 D2 D1 D0
DP X X X d3 d2 d1 d0

这种指令的格式为:

该命令由二字节组成,前半部分为指令,其中a2~a0为位地址,d0~d3为数据,收到此指令时,HD7279A将按照以下规则(译码方式0)进行译码。即:

0000:显示0 ; 1001:显示9

1010:显示 -; 1111:显示空白

(2)下载数据且按方式1译码

此指令与上一条指令基本相同,所不同的只是译码方式。该指令的译码方式为:d0~d3的值对应于0~9和A~F。格式如下:

D7 D6 D5 D4 D3 D2 D1 D0
1 1 0 0 1 a2 a1 a0
D7 D6 D5 D4 D3 D2 D1 D0
DP X X X d3 d2 d1 d0

(3)下载数据但不译码

该指令的格式如下:

D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 1 0 a2 a1 a0
D7 D6 D5 D4 D3 D2 D1 D0
DP A B C D E F G

在该指令格式中,a2,a1,a0为位地址,A~G和DP为显示数据,分别对应7段LED数码管的各段。当相应的数据位为1时,该段点亮,否则,该段不亮。实际上,此指令是比较灵活的,设计时可以通过造字形表来显示用户所需的字符。

(4)闪烁控制88H

此命令用于控制各个数码管的闪烁属性,d1~d8分别对应数码管1~8。在相应的各位中?0表示闪烁,1表示不闪烁。开机后的缺省状态为各位均不闪烁。具体指令格式如下:

D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 1 0 0 0
D7 D6 D5 D4 D3 D2 D1 D0
d8 d7 d6 d5 d4 d3 d2 d1

(5)读键盘数据指令15H

该指令的格式如下:

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 1 0 1 0 1
D7 D6 D5 D4 D3 D2 D1 D0
d7 d6 d5 d4 d3 d2 d1 d0

该指令主要用于从HD7279A读出当前的按键代码。与其它指令不同的是,此命令的前一个字节00010101B为微控制器传送到HD7279A的指令,而后一个字节d0~d7才是HD7279A返回的按键代码,该代码的具体范围是0~3FH(当无键按下时,为0xFF)。

当HD7279A检测到有效按键时,KEY引脚从高电平变为低电平,并一直保持到按键结束。在此期间,如果HD7279A接收到“读键盘数据指令”,则输出当前按键的键盘代码;而如果在接收到“读键盘指令”时没有有效按键被按下时,HD7279A则输出FFH(11111111B)。

3.3 串行接口时序

综上所述?在HD7279A的指令结构类型中?不带数据的纯指令的指令宽度为8BIT,即微处理器需发送8个CLK脉冲。而带有数据的指令宽度为16BIT,即微处理器需发送16个CLK脉冲。但其中的读取键盘数据指令?宽度也是16BIT?的前8个BIT为微处理器发送到HD7279A的指令,后8个BIT为HD7279A返回的键盘代码。执行此指令时,HD7279A的DATA端在第9个CLK脉冲的上升沿变为输出状态,并于第16个脉冲的下降沿恢复为输入状态,以等待接收下一个指令。图1是HD7229A的3种指令接口时序图。图24 HD7279A的应用

4.1 硬件电路

HD7279A的典型应用电路如图2所示,使用时HD7279A应连接共阴式数码管,无需用到的键盘和数码管可以不连接。如果不用键盘,则典型电路图中连接到键盘的8只10kΩ电阻和8只100kΩ下拉电阻均可以省去。而如果使用键盘,则电路中的8只100kΩ下拉电阻则不能省略。除非不接入数码管,否则连接至DP及SA~SG的8只200Ω电阻也不能省去。

如果将P1.0接到CS,P1.1接到CLK,P1.2接到DATA,而将P1.3接KEY,那么,其具体的软件程序代码如下:

(1) 发送一字节子程序:(发送数存于A中)

STFS: MOV R7,#08H

LP1: RLC A

MOV P1.2,C

SETB P1.1

MOV R6?#02H

LP2: DJNZ R6, LP2 ;延时8μs

CLR P1.1

MOV R6, #02H

LP3:DJNZ R6,LP3 ;延时8μs

DJNZ R7,LP1

RET

(2)接收一字节子程序:(接收字符存于A中)

STJS: MOV R7,#08H

LP1:SETB P1.1

SETB P1.2

MOV R6,#02H

LP2: DJNZ R6,LP2 ;延时8μs

MOV C, P1.2

RLC A

CLR P1.1

MOV R6,#01H

LP3: DJNZ R6,LP3 ;延时

DJNZ R7,LP1

RET

(3)显示程序(采用下载数据但不译码方式,其字形表由用户根据需要和硬件连线来确定,指令码为90~97):

DTR: MOV R5,#05H

MOV R0,#40H

MOV R1,#95H

LP1: CLR P1.0 (CS=0)

MOV R6,#0CH

LP2: DJNZ R6,LP2 ;延时50μs

MOV A,R1

ACALL STFS ;发指令

MOV R6,#04H

LP3: DJNZ R6,LP3 ;延时25μs

MOV A,@R0

ADD A,#0DH

MOVC A,@A+PC

ACALL STFS ;发显示代码

MOV R6,#02H

LP4: DJNZ R6,LP4 ;延时8μs

SETB P1.0 ;CS=1

INC R0

DEC R1

DJNZ R5,LP1

RET

TAB DB 7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH,7BH,

DB 77H,1FH,4EH,3DH,4FH,47H,00H,67H

(4) 读键值子程序:所读的键值保存在A、B单元中,其值与按键在键盘中的位置及硬件连线有关。

ST: ACALL KEY1

CJNE A,#0FFH,LP1

CLR 00H

RET

LP1: JB 00H,LP2

SETB 00H

RET

LP2: MOV B, #FFH

RET

KEY1:CLR P1.0 ;CS=0

MOV R6,#0CH

LP1: DJNZ R6,LP1 ;延时50μs

MOV A?#15H

ACALL STFS ;发指令

MOV R6,#06H

LP2? DJNZ R6,LP2 ;延时25μs

ACALL STJS ;读键值

MOV B, A

SETB P1.0 ;CS=1

RET

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:DHCP和DHCP配置
下一篇:华云大咖说 | 华云校园信创云解决方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~