74HC595理解
我们知道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一使能,新的数据就输出,覆盖旧输出。
在前一篇文章也提到74HC595是串行输入,串行/并行输出的,级联就用到这个串行输出了,也就是引脚9,通过引脚9把数据传到下一级595的引脚14(DS),根据图3来说下级联数据传送的原理。
假如往第一级的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实现流水灯的功能。