| 串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用 |
| 类别:电子综合 |
|                   串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用     1 概述     ZLG7289A是广州周立功单片机发展有限公司自行设计的、具有SPI串行接口功能的、可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片。该芯片同时可连接多达64键的键盘矩阵。单块芯片即可完成LED显示以及键盘接口的全部功能。     ZLG7289A内部含有译码器,可直接接收BCD码或16进制码,并同时具有2种译码方式,此外还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。                    通过ZLG7289A自身所具有的片选信号,可以方便地实现多于8 位显示或多于64 键的键盘接口。该芯片的主要特性如下:     ●带有串行接口,无需外围元件即可直接驱动LED;     ●各位可独立控制译码/不译码及消隐和闪烁属性;     ●具有(循环)左移/(循环)右移指令;     ●具有段寻址指令,可方便地控制独立的LED显示器;     ●内含64键键盘控制器以及去抖动电路;     ●可完全替代其它公司的8279、8155、8255等系列显示器件。     2 引脚说明     ZLG7289A芯片具有标准的DIP28和SOIC28两种封装形式。其引脚排列如图1所示,各引脚的功能说明见表1所列。     表1 ZLG7289A引脚功能说明               3 控制指令说明     ZLG7289A 的控制指令分为二大类:纯指令和带有数据的指令。     3.1 纯指令     纯指令包括复位(清除)指令(0A4H)、测试指令(0BFH)、左移指令(0A1H)、 右移指令(0A0H)、 循环左移指令(0A3H)、 循环右移指令(0A2H)等。下面以复位(清除)指令(0A4H)为例来进行说明,该指令的格式如下:               当ZLG7289A 接收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。     3.2 带有数据的指令     (1)下载数据且按方式0译码指令     该指令的格式如下:               该命令由二个字节组成。前半部分为指令,其中a2 a1 a0 为位地址,d0~d3为数据。具体分配方式如表2所列。当系统接收到此指令时(ZLG7289A将按译码方式0进行译码)具体的译码方式如表3所列。小数点的显示可由DP位控制,DP为1时,小数点显示,DP为0时,小数点不显示。在该指令格式中,x表示没有影响。     表2 位地址分配表               表3 译码方式表               (2)下载数据且按方式1译码指令     这种指令与上一个指令基本相同。所不同的是,该指令的d0~d3对应的数据位0AH~0FH分别为七段显示中的A、B、C、D、E、F。该指令的具体格式如下:               (3) 读键盘数据指令     该指令从ZLG7289A读出当前的按键代码,格式如下:               与其它指令不同的是,此命令的前一个字节0001010B 为单片机传送到ZLG7289A的指令,而后一个字节d0~d7则为ZLG7289A返回的按键代码。 其范围为0~3FH(无键按下时为0xFF)。在此指令的前半段,ZLG7289A 的DATA 引脚处于高阻输入状态,可以用来接收来自微处理器的指令;在指令的后半段,DATA 引脚从输入状态转为输出状态,此时将输出键盘代码的值。故微处理器连接到DATA 引脚的I/O口应当有一个从输出态到输入态的转换过程。     当ZLG7289A检测到有效的按键时,KEY 脚将从高电平变为低电平,并一直保持到按键结束。在此期间,如果ZLG7289A 接收到“读键盘数据指令”,则输出当前按键的键盘代码;如果在接收到“读键盘数据指令”时没有有效按键,ZLG7289A将输出FFH(11111111B)。     (4)其它指令     除以上几个指令外,ZLG7289A还具有下载数据但不译码、闪烁控制、消隐控制、段点亮指令、段关闭等指令,限于篇幅,此处不再详述。     4 典型应用     ZLG7289A 应连接共阴式数码管,应用中无需用到的数码管和键盘可以不连接,因而可省去数码管。此外,设置消隐属性也不会影响键盘的使用。     由于ZLG7289采用的是循环扫描的工作方式,因此,如果采用普通的数码管,亮度可能不够,故应采用高亮度或超高亮度的数码管,且尺寸也不宜选的过大,一般字符高度不超过1 英寸,如使用大型的数码管,则应选用适当的驱动电路。     ZLG7289A的RESET复位端在一般情况下,可以直接和VCC相连;而在需要较高可靠性的情况下,则可以连接外部复位电路或直接由MCU 控制。在上电或RESET 端由低电平变为高电平后,通常要经过大约18~25ms的时间,ZLG7289A才会进入正常工作状态。     5 应用实例     AT89C51所用时钟频率为12MHz如果使用不同的CPU时钟频率,则应注意调整延时时间。下面给出的是该系统的部分程序:     ;*****************RAM定义     BIT_COUNT DATA 07FH     TIMER DATA 07EH     TIMER1 DATA 07DH     TEN DATA 07CH     DATA_IN DATA 020H     DATA_OUT DATA 021H     ;**************I/O定义     DAT BIT P0.6 ;ZLG8279A的 DATA,连接AT89C51的P0.6     KEY BIT P0.7 ; ZLG8279A的KEY,连接AT89C51的P0.7     CS BIT P0.4 ; ZLG8279A的CS,连接AT89C51的P0.4     CLK BIT P0.5 ; ZLG8279A的CLK,连接AT89C51的P0.5     ORG 0000H     AJMP START     ORG 0030H     START:MOV SP,#2FH ;堆栈定义     MOV P1,#11011011B ;I/O初始化     MOV TIMER,#50 ;25ms定时     START_DELAY: MOV TIMER1,#255     START_DELAY1: DJNZ TIMER1,START_DELAY1     DJNZ TIMER,START_DELAY     MOV DATA_OUT,#10100100B ;复位指令     CALL SEND ;发指令到ZLG8279A     SETB CS ;恢复CS高电平     MAIN:JB KEY,MAIN ;是否有键按下     MOV DATA_OUT,#00010101B ;有键按下,发读键盘指令     CALL SEND     CALL RECEIVE     SETB CS ;CS置高电平     MOV B,#10 ;16进制到BCD码转换     MOV A,DATA_IN     DIV AB     MOV TEN,A     MOV DATA_OUT,#10100001B ;左移指令     CALL SEND     MOV DATA_OUT,#10100001B     CALL SEND     MOV DATA_OUT,#10000001B ;下载数据且译码指令     CALL SEND     MOV DATA_OUT,TEN ;发送十位数字到ZLG8279A     CALL SEND     MOV DATA_OUT,#10000000B ;下载数据且译码指令     CALL SEND     MOV DATA_OUT,B ;发送个位数字到ZLG8279A;     CALL SEND     SETB CS     WAIT:JNB KEY,WAIT ;等待按键松开     JMP MAIN     ;**** 发送一个字节到ZLG8279A,高位在前     SEND: MOV BIT_COUNT,#8 ;记数器设定     CLR CS ;CS置低电平     CALL LONG_DELAY ;长延时子程序     SEND_LOOP:MOV C,DATA OUT.7 ;输出1位     MOV DAT,C     SETB CLK ;CLK置高电平     MOV A,DATA_OUT ;待发送数据左移     RL A     MOV DATA_OUT,A     CALL SHORT_DELAY ; 短延时子程序     CLR CLK ; CLK置低电平     CALL SHORT_DELAY     DJNZ BIT_COUNT,SEND_LOOP ;8位是否发送完毕     CLR DAT ;发送完毕,返回     RET     ;***接收一个字节到ZLG8279A,高位在前     RECEIVE:MOV BIT_COUNT,#8 ;记数器设定     SETB DAT ;设定P1.2(DATA)为高电平输入状态     CALL LONG_DELAY ;     RECEIVE_LOOP: SETB CLK ; CLK置高电平     CALL SHORT_DELAY     MOV A,DATA_IN ;数据左移     RL A     MOV DATA_IN,A     MOV C,DAT ;读取一位数据     MOV DATA_IN.0,C     CLR CLK     CALL SHORT_DELAY     DJNZ BIT_COUNT,RECEIVE_LOOP ; 8位是否接收完毕     CLR DAT ; 重设DAT口为低电平(输出状态)     RET     ;**************延时子程序     LONG_DELAY: MOV TIMER,#25 ;设定延时时间为50μs     DELAY_LOOP: DJNZ TIMER,DELAY_LOOP     RET     SHORT_DELAY:MOV TIMER,#4 ;设定延时时间为50μs     SHORT_LP: DJNZ TIMER,SHORT_LP     RET     END     6 结束语     ZLG8279A具有的特点和丰富的指令系统,使得由其组成的LED显示和键盘电路具有外围电路简单,功能强大,使用方便,可靠性高,与MCU接口简单等特点,是LED显示和键盘电路的首选器件。笔者利用该芯片制作的“学生提问指示仪”,经使用,效果良好。           |
- 海尔空调制冷故障维..
- 2008-1-25
- 大尺寸TFT显示器..
- 2008-1-27
- 利用DC/DC转换..
- 2008-1-27
- 电动车铅酸蓄电池的..
- 2008-1-27
- 大型搅拌站自动配料..
- 2008-1-27
- 城市和工业污水处理..
- 2008-1-27
- 开关电源的数字控制..
- 2008-1-27
- 精密的智能电池使充..
- 2008-1-27
- 基于DSP控制的2..
- 2008-1-27
- 增强型运营商级多服..
- 2008-1-27
- 高效CCD数码相机..
- 2008-1-27
- Atheros 单..
- 2008-1-27
- Philips 推..
- 2008-1-27
- Fujitsu 数..
- 2008-1-27
- 如何给PCI卡选用..
- 2008-1-27
- A/D转换芯片的测..
- 2008-1-27
- 基于CTl技术的交..
- 2008-1-27
- MMIC和RFIC..
- 2008-1-27
- 利用皮弹服务器进行..
- 2008-1-27
- 白色发光二极管及其..
- 2008-1-27










