2.47448译码器7448是7段显示译码器,输出高电平有效的译码器。工作电压为5V,用于驱动共阴极数码管,7448除了有实现8段显示译码器基本功能的输入(DCBA)和输出(Ya~Yg)端外,7448还引入了灯测试输入端(LT)和动态灭零输入端(RBI),以及既有输入功能又有输出功能的消隐输入/动态灭零输出(BI/RBO)端,如图2-8所示。由7448真值表可获知7448所具有的逻辑功能如下:图2.87448引脚功能图(1)7段译码功能(LT=1,RBI=1)在灯测试输入端(LT)和动态灭零输入端(RBI)都接无效电平时,输入DCBA经7448译码,输出高电平有效的7段字符显示器的驱动信号,显示相应字符。除DCBA=0000外,RBI也可以接低电平,见表1中1~16行。(2)消隐功能(BI=0)此时BI/RBO端作为输入端,该端输入低电平信号时,表1倒数第3行,无论LT和RBI输入什么电平信号,不管输入DCBA为什么状态,输出全为“0”,7段显示器熄灭。该功能主要用于多显示器的动态显示。(3)灯测试功能(LT=0)此时BI/RBO端作为输出端,该端输入低电平信号时,表1最后一行,与及DCBA输入无关,输出全为“1”,显示器7个字段都点亮。该功能用于7段显示器测试,判别是否有损坏的字段。(4)动态灭零功能(LT=1,RBI=1)此时BI/RBO端也作为输出端,LT端输入高电平信号,RBI端输入低电平信号,若时DCBA=0000,表1倒数第2行,输出全为“0”,显示器熄灭,不显示这个零。DCBA≠0,则对显示无影响。该功能主要用于多个7段显示器同时显示时熄灭高位的零。(5)7448/SN7448译码器0-9真值表如表2.2所示:表2.27448/SN7448译码器0-9真值表LIRBIDCBABI/RBOYaYbYcYdYeYfYg显示1100001111111001X00011011000011X00101110110121X00111111100131X01001011001141X01011101101151X01101001111161X01111111000071X10001111111181X10011000110192.5数码管数码管是一种半导体发光器件,其基本单元是发光二极管。2.5.1产品分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴极数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。2.5.2驱动方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。1)静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。图2.9LED静态驱动电路2)动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。图2.10LED动态驱动电路本设计选用的数码管为05621B型号的双位共阴极数码管,输入信号为7448译码器输出的二进制信号。数码管实物及其引脚图如图2.11数码管实物图图2.12数码管引脚图3)LED显示驱动芯片随着单片机技术的发展,许多公司都推出了专用LED显示驱动芯片,如Microchip公司的AY0438、Maxim公司的MAX7219等都是其中的典型代表。MAX7219是Maxim公司推出的8位LED串行显示驱动器,它采用3线串口传送数据,占用资源少且硬件简单,只需一个外部电阻即可方便地调节LED的亮度;可灵活地选择显示器的个数(1~8个,级联可成倍增加);可进行译码或不译码显示;内含硬件动态扫描控制,可设置低功耗停机方式。MAX7219引脚功能和工作原理:MAX7219采用24脚双列直插式封装,其引脚如图3所示。SEGA~SEGG和DP分别为LED七段驱动器线和小数点线,供给显示器源电流;DIG0~DIG7为8位数字驱动线,输出位选信号,从每位LED共阴极吸入电流。图2.13MAX7219引脚功能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.14所示。图2-3-1图2.14串行数据格式其中,地址×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显示器的所有字段都以最大亮度接通显示。