两个74HC595D驱动芯片控制三位数码管显示
概述
74HC595D芯片主要用于驱动点阵屏或者多位数码管显示等。如果不加驱动芯片,单纯用单片机来控制点阵屏或者数码管来显示,那就会浪费很多资源。
拿数码管为例,控制一个数码管需要8个io引脚,如果是N个数码管,则需要用到N*8个io口,对于单片机来说占用引脚太多,有些单片机引脚未必够,或者占用了可以复用的外设引脚,资源很浪费,而且单片机引脚电流就几十毫安,占用太多会导致供电电流不足,反而驱动不了多个数码管。
74HC595D就很好解决这个问题,总共需要3个引脚:PCLK,SCLK,DIO,给它5v供电,通过写入寄存器值的方式来控制数码管显示,多个数码管显示就需要两个74HC595D,以级联方式来控制显示。下面主要讲述控制3个数码管显示的,单片机是STM32F4系列的。
一.数码管引脚及使用概述
数码管:4301BS 3位共阳数码管
产品链接
1.1位数码管显示方式
A~DP分别由8个引脚控制,因为是共阳极,给低电平则能点亮一个管,比如数字“1”,则给BC段低电平。
2.3位数码管
3.3位数码管电路图
1.3位数码管和1位的不一样,三个数码管共用A~DP 8段引脚;
2.三个数码管各自引出一个引脚,这叫位引脚;
3.A~DP引脚下的数字,对应数码管的引脚顺序,左下角第一根引脚为顺序1;
4.控制3位数码管,首先通过位引脚选择需要的数码管,然后再控制段引脚输出,就能显示了,循环选择输出数码管,就能看到多位显示了。
二.74HC595D引脚及使用概述
1. 74HC595引脚图
|
引脚 | 用途 |
---|---|
Vcc | 5v供电 |
GND | 接地 |
QA~QH | 8个段选引脚,引脚电平控制数码管亮灭 |
SER | 数据输入 |
RCK | 锁存引脚,锁存时钟线 |
SCK | 时钟线 |
SCLR | 移位寄存器清零端 ,一般接VCC |
G | 接地 |
Q’ H | 超过8位数据,移位输出,相当于移位寄存器 |
1.使用此模块,只需要3个引脚,就能控制数码管显示,分别是RCK,SCK,SER(DIO),控制方式为串行输出控制。
2.连接方式:数码管8个引脚接到74HC595的QA~QH上,74HC595的RCK,SCK,SER(DIO)接到单片机上。
3控制方式:通过单片机给SER(DIO)移位输出一个字节的方式,控制数码管显示;.一个字节的8bit代表数码管A~DP的显示,所以说一个字节就能控制一个数码管显示;
4.A~DP,低位在前,高位在后,A为最低比特位,以此类推。比如显示“0”,则输入0xC0。
5.如果输入74HC595的数据超过8bit,则74HC595的 Q’ H 会把多余的bit位移位输出,先进先出,所以一般Q’ H 用于级联多个74HC595芯片。
2.两个74HC595D级联电路图
如上图所示,两个74HC595级联控制3位数码管显示:
1.左边的74HC595为位选,负责选择哪个数码管;右边的74HC595为段选,负责数码管显示;
2.左边的74HC595的4个DIG是数码管四个位选引脚,连接在QA~QD串行输出端上,最大能控制8个数码管,段选引脚对应地址为0x01,0x02,0x03,0x04…,按比特位以此类推,DIO为输入引脚,负责把单片机传过来的数据移位输入进去,当数据大于8bit位时,Q’H会按先进先出方式移位输出bit数据。
3.图中左边的74HC595的Q’H连接到右边74HC595的SER上,就说左边的74HC595多出的数据传到下个74HC595上,形成级联。
4.所以控制3位数码管的方式就是:从左边开始,单片机往DIO口先输入1字节的段选信号(比如显示“0”,输入0xC0),这是左边的74HC595的QA~QH为0xC0;然后单片机往DIO口输入1字节的位选信号(比如要第二个数码管显示,输入0x02)。但是左边的74HC595的QA-QH原本有数据0xC0了,这时挤进来一个0x02,则左边的74HC595的Q’H把0xC0按移位挤到右边的74HC595;最终左边的74HC595数据为0x02,右边的74HC595数据为0xC0,第二个数码管显示为0;
5.按4所述,加入循环,3位数码管不停输出,则数码管一直显示3位数据。
三.利用程序控制三位数码管
主控芯片:STM32F4
74HC595.c
#