单片机系统中LED显示驱动电路的研究

时间:2007-09-24
  摘要:本文对比了单片机系统中LED显示驱动电路的几种实现方案,着重介绍了LED显示驱动芯片MAX7219 的工作原理和使用方法,给出了一个用MAX7219驱动8位LED显示系统的应用实例。
  关键词:LED 显示驱动;MAX7219;单片机
  近年来,单片机系统以其体积小、功能强、扩展灵活、使用方便等优点,逐渐渗透到各行业的工程实际应用中。而LED显示电路就像单片机系统的眼睛,实时地向人们传递着系统工作的各种状态信息和处理结果。因此,高效、方便的LED显示驱动电路是构成完善的单片机系统必不可少的元素。常用的LED显示驱动电路有并行译码方式、串行—并行转换方式、显示驱动接口芯片方式等。下面分别对这几种方式进行讨论,并给出显示驱动芯片MAX7219的应用实例。 
        并行译码显示方式 
  图1为单片机89C2051输出显示的一个例子,4位BCD码数据从其P1.0~P1.3并行输出,经7段LED显示驱动电路CD4511译码后驱动LED显示,这样只需向P1.0~P1.3 写入欲显示数字的BCD码,即可显示出相应的数字。这种方式虽然简单,但占用单片机口线较多,资源利用率低,因此不常采用。  

            图1 并行译码显示方式 
        串行- 并行转换方式 

  图2所示为89C2051的串口驱动数码管的电路,其中串口工作在方式0,74LS164是8位串入并出移位寄存器,负责将RXD输出的串行数据转换成并行信号。显然,这种方式显示同样的位数使用单片机的口线大大减少,并且可以让LED显示BCD码以外的字符(如A、B、C、D 等),但是,当要显示的位数较多时,仍需占用较多的口线,并且在许多情况下需要串口工作在UART方式,以便进行串行通信,从而限制了这种方式的使用范围。

图2 并行译码显示方式 
        LED显示驱动芯片 
  随着单片机技术的发展,许多公司都推出了专用LED显示驱动芯片,如Microchip公司的A Y0438、Maxim公司的MAX7219等都是其中的典型代表。下面以MAX7219为例说明LED显示驱动芯片在单片机系统中的应用。 
        MAX7219简介 
       MAX7219是Maxim公司推出的8位LED串行显示驱动器,它采用3线串口传送数据,占用资源少且硬件简单,只需一个外部电阻即可方便地调节LED的亮度;可灵活地选择显示器的个数( 1~8个, 级联可成倍增加);可进行译码或不译码显示;内含硬件动态扫描控制,可设置低功耗停机方式。 
        引脚功能和工作原理 
  MAX7219采用24脚双列直插式封装,其引脚如图3所示。SEGA~SEGG和DP分别为LED七段驱动器线和小数点线,供给显示器源电流;DIG0~DIG7为8位数字驱动线,输出位选信号,从每位LED共阴极吸入电流。 

图3MAX7219 引脚功能 
      DIN是串行数据输入端。在CLK 的上升沿,一位数据被加载到内部16位移位寄存器中,CLK频率可达10MHz,在输入时钟的每个上升沿均有一位数据由DIN端移入到内部寄存器中;LOAD用来装载数据,在LOAD的上升沿,16位串行数据被锁存到数据或控制寄存器中,LOAD必须在第16个时钟上升沿的同时或之后、在下一个时钟上升沿之前变高, 否则数据将被丢失。每组数据为16 位二进制数据包,其格式如表1所示。 
      其中D15~D12位不用,D11~D8位为内部5个控制寄存器和8个LED显示数据寄存器的地址,D7~D0位为5个控制寄存器和8个LED数码管待显示的数据,因为控制寄存器与显示数据寄存器独立编址,所以可以通过程序对每个寄存器进行操作。一般情况下,程序先送控制命令,后向显示寄存器送数据,每16 位为一组,从高位地址字节位开始送,直到低位数据字节一位。MAX7219内部有14个可寻址的控制字寄存器,各寄存器的功能及地址如表2所示。 

  其中,地址×0H 为空操作寄存器,允许数据从输入到输出直接通过,可用于设备串接。地址×1H~×8H为显示RAM区,分别对应DIG0~DIG7引脚的8 位LED显示数据。地址×9H为译码模式寄存器,其8 位二进制数分别控制着8个LED显示器的译码模式,逻辑高电平时选择硬件译码(BCD - B码译码), 译码器选择数据寄存器中的低4位(D3~D0)进行BCD- B码译码, ×0H~×9H对应BCD码字符0~9,而×AH~×FH分别对应B码字符-、E、H、L、P及消隐,D4~D6无效,D7单独控制小数点;译码模式寄存器为逻辑低电平时选择软件译码,数据D6~D0分别对应LED显示器的A~G段,D7对应小数点DP。 
  地址×AH为显示亮度寄存器,通过对该寄存器的D0~D3位写入不同的数值可实现对LED显示亮度的控制,从00H到0FH共16级可调。地址×BH为扫描界限寄存器,其D0~D3位数值设定为00H~07H,表示显示器动态扫描个数为1~8。地址×CH为停机寄存器,当其D0位为0时,MAX7219处于停机状态,扫描振荡器停振,所有显示器消隐,寄存器数据保持不变;当D0为1时,正常工作。地址×FH为显示测试寄存器,当其D0位为0时,正常工作;当D0为1时处于测试状态,全部LED显示器的所有字段都以亮度接通显示。 
        应用举例 
  图4 为MAX7219的位LED显示电路实例。图4中,单片机89C2051的P1.0、P1.1分别接MAX7219的串行数据输入端DIN和时钟信号CLK, P1.2作为LOAD信号。电阻R根据不同的LED选值,范围在7KΩ~ 60KΩ之间。

图4 MAX7219 应用电路 
 
        结语 
      通过以上对比,并行译码方式电路简单,但是资源利用率低,因此并不常用,串行- 并行转换方式在小型系统中应用具有很强的优势,但随着单片机应用系统的发展,很多复杂系统中都采用了专用显示驱动芯片。从上述应用实例可以看出,使用MAX7219 后,系统硬件结构简洁、程序流程清晰、控制灵活方便,应用于仪器仪表、医疗设备及智能家电等领域,可省去很多锁存器、译码器及驱动器,大大提高显示部分的集成程度,因此这种显示驱动方式在单片机系统设计中有着广阔的应用前景。

  
上一篇:ARM CPU CS89712与C5510 DSP 的接口设计
下一篇:基于ST20嵌入式系统的Java虚拟机研究与移植

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料