USB论坛
直播中

王颖

7年用户 144经验值
私信 关注
[经验]

51单片机和HD 7279A的接口与编程

HD 7279A 芯片与 MAX7219 芯片的功能类似,能驱动 8 位共阴式数码管 ( 或 64 只独立 LED) 的智能显示驱动芯片,不同的是该芯片同时还可连接多达 64 键的键盘矩阵。单片可完成 LED 显示、键盘接口的全部功能。该芯片具有片选信号,可方便地实现多于 8 位 LED 显示或多于 64 个键的键盘接口。
        
  HD 7279A 具有如下特点:
  
  ①串行接口,无需外围元件可直接驱动 LED ;
  
        ②各位独立控制泽码/不译码及消隐和闪烁属性;
        
  ③ ( 循环 ) 左移/ ( 循环 ) 右移指令;
  
  ④具有段寻址指令,方便控制 LED ;
  
  ⑤ 64 键键盘控制器,内含去抖动电路
  
  一、 HD 7279A 的结构和功能
  
  1 引脚说明
      
  HD 7279A 的引脚排列如图 1 所示,符引脚功能叙述如下:
         
        ①②脚: VDD ,正电源输入端;
        ③⑤脚: NC ,无连接,必须悬空;
        ④脚: VSS ,接地端;
        ⑥脚: CS ,片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据;
        ⑦脚: CLK ,同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效;
        ⑧脚: DATA ,串行数据输入/输出端,当芯片接收指令时,此引脚为输入端;当读取键盘数据时,此引脚在“读”指令最后一个时钟的下降沿变为输出端;
        ⑨脚: KEY, 按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平;
        ⑩~ 脚: SG ∽ SA ,段 g ∽段 a 驱动输出;
        脚: DP ,小数点驱动输出;
        ~ 脚: DIGO ~ DIG7 ,数字 0 ~数字 7 驱动输出;
        脚: CLKO ,振荡输出端;
        脚: RC , RC 振荡器连接端;
        脚: RESET .复位端。
         
        2 .串行接口通信
        
  HD 7279A 采用串行方式与微处理器通讯,串行数据从 DATA 引脚送入芯片,并由 CLK 端同步。当片选信号变为低电平后, DATA 引脚上的数据在 CLK 引脚的上升沿被写入 HD 7279A 的缓冲寄存器。
  
  HD 7279A 的控制指令分为两大类——纯指令和带有数据的指令,按指令结构可分为三种类型:
  
  (1) 不带数据的纯指令
  
        指令的宽度为 8 个 BIT ,即微处理器需发送 8 个 CLK 脉冲。该类数据串行传送时序如图 2 所示,该类数据主要有以下几种:
        
         
          ①复位 ( 清除 ) 指令 A4H 。当 HD 7279A 收到该指令后,将所有的显示消除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与上电后所处的状态一样。
        ②测试指令 BFH 。该指令使所有的 LED 全部点亮,并处于闪烁状态,主要用于测试。
        
  ③左移指令 A1H 。使所有的显示自右向左移动一位(包括处于消隐状态的显示位 ) ,但对各位所设置的消隐及闪烁属性不变。移动后,最右边一位为空。
        ④右移指令 AOH 。与左移指令类似,但所做移动为自左向右移动,移动后,最左边一位为空。
        
  ⑤循环左移指令 A3H 。与左移指令类似,不同之处在于移动后原左边一位的内容 ( 第 8 位 ) 显示于最右位 ( 第 1 位 ) 。
        
  ⑥循环右移指令 A2H 。与循环左移指令类似,但移动方向相反。
        
  (2) 带有数据的指令
  
  宽度为 16 个 BIT ,即微处理器需发送 16 个 CLK 脉冲。该类数据串行传送时序如图 3 所示,该类数据主要有以下几种:
        
        
    ①下载数据且方式 0 译码。该类命令由两个字节组成,前半部分为指令,其中 a2 , a1 , a0 为位地址,范围为 000 ~ 111 ,分别对应显示位 1 — 8 。 dO ~ d3 为数据,收到此指令时, HD 7279A 按下列规则进行译码,如表 1 所示。
        
        
    小数点的显示由 DP 位控制, DP=1 时,小数点显示, DP=0 时,小数点不显示, X 位无影响。
   
        ②下载数据且方式 1 译码。此指令与上一条指令基本相同,所不同的是译码方式,该指令译码方式如表 2 所示。
        
        
    ③下载数据但不译码。在该指令 a2 , a1 , a0 为位地址,范围为 000 ∽ 111 ,分别对应显示位 1 ∽ 8 。 A ~ G 和 DP 为显示数据,分别对应 7 段 LED 数码管的各段。当数据位为 1 时,该段点亮,否则不亮。
   
        ④闪烁控制 88H 。此命令控制各个数码管的闪烁属性,后 8 位分别对应数码管 1 ~ 8.0 为闪烁, 1 为不闪烁。开机后,缺省的状态为各位均不闪烁。
        
  ⑤消隐控制 98H 。此命令控制各个数码管的消隐属性。后 8 位分别对应数码管 1 ~ 8.0 为消隐, 1 为显示。当某一位被赋予了消隐属性后, HD 7279A 在扫描时将跳过该位,因此在这种情况下无论对该位写入何值,均不会被显示,但写入值将被保留,将各位重新设为显示状态后,最后一次写入的数据将被显示出来。
  
  ⑥段点亮指令 EOH 。该指令主要用来点亮数码管中某一指令段,或 LED 矩阵中某一指令的 LED 。
        
  ⑦段关闭指令 COH 。该指令主要用来关闭数码管中某一指令段,或 LED 矩阵中某一指令的 LED 。
        
  (3) 读取键盘数据指令 15H
        
  该指令从 HD 7279A 读出当前的按键代码,宽度为 16 个 BIT ,前 8 个为微处理器发送到 HD 7279A 的指令,后 8 个 BIT 为 HD 7279A 返回的键盘代码,其范围为 0 ~ 3FH( 无键按下时为 FFH) 。执行此指令时, HD 7279A 的 DATA 端在第 9 个 CLK 脉冲的上升沿变为输出状态,并与第 16 个脉冲的下降沿恢复为输入状态,等待接收一下指令。该类数据串行传送时序如图 4 所示。
         
         
        二、 HD 7279A 应用外围电路及编程实例
         
        本例程中利用单片机 89C 52 对 HD 7279A 进行控制,完成了 7 位数码的显示、 6 只发光二极管的驱动和 12 个按键动作的编码, HD 7279A 芯片引脚 CS 、 CLK 、 DATE 、 KEY 分别与单片机引脚 Po_0 、 Po_1 、 Po_2 、 P3_3 相连,通过 DIG0 ~ 7 引脚和 SA 、 SB 、 SC 、 SD 、 SE 、 SF 、 SG 、 SDP 引脚直接驱动数码管和 LED 发光二极管,通过 100k Ω排电阻和 200,0 电阻连接按键,图 5 是 HD 7279A 的外围电路图,下面给出了 89C 52 控制 HD 7279A 的 C 语言程序,此程序已经通过实验板调试成功。

更多回帖

发帖
×
20
完善资料,
赚取积分