SM74HC595D电路级联教程

SM74HC595D电路级联教程

1简述

SM74HC595D电路级联教程_第1张图片

SM74HC595D 是一种具有8 位锁存、8 位串行输入、 8 位串/并行输出、 串—并移位寄存器和三态输出功能的通用LED 驱动芯片。具有8 位移位寄存器和一个存储器,三态输出功能。 该设备具有串行输入(SER)和串行输出(Q7S)来级联和异步复位输入SCLR的功能。

移位寄存器和存储寄存器时钟都是分开的。

在移位寄存器时钟(SCK)的上升沿时,SER上的数据会被移入移位寄存器,在存储寄存器时钟(RCK)上升沿时,移位寄存器里的数据传输到存储寄存器,当输出使能G为低时,存储寄存器里的数据就会并行输出。

当SCLR为低电平时复位移位寄存器,即将移位寄存器数据清零。

当OE为高电平时输出为高阻态。

2 引脚功能

SM74HC595D电路级联教程_第2张图片

3 真值表

再来看看该芯片的的真值表图。

SM74HC595D电路级联教程_第3张图片

从真值表中可以看出其逻辑关系,主要使用红框部分。

4 逻辑关系

SM74HC595D电路级联教程_第4张图片

从功能框图中可以看出,引脚10、11、14都是作用在移位寄存器的,被传输的数据先进入移位寄存器,再通过SCK将移位寄存器的数据存入存储寄存器,最后通过输出使能端\G使能数据并行输出,引脚9 Q7S用于级联。

我们知道74HC595是将数据串转并的,也就是数据(8bit)串行输入,并行输出。串行并行这些概念就不多说了,不清楚的自行查资料。

使用步骤:

1、先把要传输的数据(8bit)从引脚14 SER输入到74HC595

2、将从SER上的数据串行移入移位寄存器,需要时钟驱动,即引脚11(SCK)每产生一个上升沿,SER上的数据往移位寄存器送入一位,先送低位,后送高位,经过8个上升沿后,8bit全部送入移位寄存器了。

3、将移位寄存器里的数据送入存储寄存器,引脚12(STCP)产生一个上升沿后,该操作就完成了。

4、引脚13(G)为低电平,则步骤3送入存储寄存器的8bit数据(一个字节)就在Q7-Q0并行输出,并输出的数据会被所存起来。

注意:数据并行输出后,只要没有数据更新进来,原输出的数据保持不变,就是所谓的锁存(数据被锁存住)。在完成步骤123后,只要步骤4还没使能,输出都是保持不变的(这里是有误的,输出不是保持不变,不使能,输出是呈高阻态),当OE一使能,新的数据就输出,覆盖旧输出。

5单片595串转并输出过程

最后以图片的形式简单描述将0x11并行输出的过程:

0x11转为二进制是 0001 0001,串转并过程如图

 

SM74HC595D电路级联教程_第5张图片

SM74HC595D电路级联教程_第6张图片

5单片595电路

74HC595的工作原理我们清楚知道要驱动595主要是控制5个引脚:引脚14(DS)、引脚11(SHCP)、引脚12(STCP)和引脚13(OE)。

以74HC595驱动8个LED灯为例设计一个简单电路:

SM74HC595D电路级联教程_第7张图片

电源和地引脚就不用多说了,上5V,电源引脚加了个0.1uF的去耦电容。

这个电路中,我把引脚13直接接地,芯片是一直处于输出使能的,引脚10接了个上拉电阻到5V,也就是主复位不使能,不使用复位功能。

引脚14、引脚11和引脚12可以连接到单片机的IO引脚,通过单片机编程来驱动74HC595,Q7-Q0连接需控制的负载,这里就是8个LED了。

6 595级联电路

单个74HC595的电路就这样子了,是不是很简单?接下来说下595如何级联使用,我在datasheet中好像没看到最多级联个数,据说可以无限级联,我自己最多级联了4个。

74HC595的级联电路很简单,只需把前一个595的引脚9(Q7S)连接到下一个595的引脚14(DS)即可,如图所示:

SM74HC595D电路级联教程_第8张图片

74HC595的级联电路设计是不是很简单?为什么这样子就可以实现级联呢?

在前一篇文章也提到74HC595是串行输入,串行/并行输出的,级联就用到这个串行输出了,也就是引脚9,通过引脚9把数据传到下一级595的引脚14(DS),根据图3来说下级联数据传送的原理。

SM74HC595D电路级联教程_第9张图片

假如往第一级的595连续发三个字节数据:ABCD EFGH、IJKLP MNOP、QRST UVWX,第一个字节ABCD EFGH先进入第一级595移位寄存器;

当第二个数据IJKLP MNOP到来时,也往第一级595移位寄存器移,而第一个字节就会被挤出到第二个移位寄存器;

当第三个数据QRST UVWX到来时,也往第一级移位寄存器移,第二个字节就被挤出到第二级移位寄存器移,而一个字节就被挤出到第三级移位寄存器移;

由于OE引脚一直低电平,所以当STCP产生上升沿后,这三个字节就并行输出了。

注意:由于级联数据是被挤出到下一级的,所以先发送的数据最后是到最后一级595的。

好了,74HC595的电路设计就说到这里,下一篇595文章会讲一下stm32分别用IO模拟时序和SPI总线两种方式控制595控制595实现流水灯的功能。

 

7 74HC595级联电路编程(模拟IO口控制)

前面两篇文章已详细分析过74HC595的工作原理,接下来讲下用stm32去驱动两片74HC595控制16个LED实现流水灯效果。

这篇的代码是用IO模拟74HC595时序驱动的,下一篇文章,我们介绍下如何用SPI来驱动。直接贴上代码分析,代码很简单,每个语句的注释都说得很清楚了。。。。。。

开发平台:MDK5.14

你可能感兴趣的:(单片机,智能家居,75HC595D,嵌入式)