1、工作原理图 GND 接地,VCC 接 5V 电源,这个就不用说了。 Q0-Q7 这 8 根引脚是芯片的输出引脚,直接跟数码管的 8 段引脚相连。对应关系要看你怎么接线和写代码时传送数据的顺序了。 DS 是串行输入引脚,所谓串行就是使数据在一根信号线上按顺序一位一位地传输,就像一串糖葫芦。这个引脚我们接到树莓派任意一个 GPIO 口上(输出模式)。 SHCP 是移位寄存器的时钟引脚。听上去有点复杂,其实很简单。74HC595 内部有一个 8 位的移位寄存器用来保存从 DS 引脚输入的数据。那么 74HC595 怎么知道什么时候该从 DS 引脚上取数据了呢?正是通过 SHCP 这个时钟引脚来实现的
2、。只有在 SHCP 发生一次 上升沿 的时候,74HC595 才会从 DS 引脚上取得当前的数据(高/低电平)并把取到的这一位数据保存到移位寄存器里。同样的,这个引脚也接到树莓派任意一个 GPIO 口上。当我们向芯片发送数据时,要先在DS 引脚上准备好要传送的数据,然后制造一次 SHCP 引脚的上升沿(先拉低电平再拉高电平),74HC595 会在这个上升沿将 DS 引脚上的数据存入移位寄存器D0,同时 D0 原来的数据会顺移到 D1,D1 的数据位移到 D2。D6 的数据位移到 D7。而原先 D7 的数据已经没有地方储存了,这一位数据会被输出到引脚Q7S 上。这个引脚的作用我们下一篇再说,本文
3、暂时用不到这个引脚。(注意这里说的不是输出引脚 Q0-Q7,而是指内部的 8 位移位寄存器里每一个“ 小房间”,芯片手册上并没有给这些小房间编号,这里为了说明方便进行了编号) STCP 是芯片内部另外一个 8 位锁存寄存器的时钟引脚。当移位寄存器的 8 位数据全部传输完毕后,制造一次锁存器时钟引脚的上升沿(先拉低电平再拉高电平)。74HC595 会在这个上升沿将移位寄存器里的 8 位数据复制到锁存器中(锁存器里原来的数据将被替换)。注意,到这里为止,这 8 位数据还只是被保存在锁存器里,并没有输出到数码管上。这个引脚同样连接到树莓派任意一个 GPIO 口上即可。 OE 是输出使能引脚,在其他芯
4、片里也很常见。作用是控制锁存器里的数据是否最终输出到 Q0-Q7 输出引脚上。低电平时输出,高电平时不输出(既不是高电平,也不是低电平而是高阻态,不通电)。本例为了方便直接接在 GND 上使其一直保持低电平输出数据。 MR 是用来重置内部寄存器的引脚。低电平时重置内部寄存器(MemoryReset?)。本例为了方便直接连接在 Vcc 上一直保持高电平。 Q7S 引脚,串行输出引脚,本文不使用,下一篇再解释它的作用。 关于锁存器。顾名思义就是将数据保存并锁定。一旦进入了锁存器,除非断电或重置数据(MR 口设置为低电平),锁存器的数据不会再改变。好处是,当你需要更新数据时,将数据串行输入移位寄存器的过程中,锁存器里的数据不会有任何影响,也就不会有闪烁了。一直到移位寄存器 8 位数据准备完毕,再制造一次STCP 的上升沿一次性更新锁存器的数据,更新输出。