一、背景
老同学今天突然咨询关于74HC595,自己没用过,同学说可以级联10级!10级?我艹,这么叼,级联又是
什么鬼,这勾起了我极大兴趣,二话不说,手册down下来研究,并在此做个记录。 二、正文
74HC595为1个8位串行移位输入寄存器带1个存储寄存器,并可8位带锁存并行输出。串行移位输入寄存器
和存储寄存器分别有独自的时钟输入控制端。此设备可级联多级,从而实现多路IO输出控制。 以下为74HC595引脚说明:
> Q7S (PIN9) serial data output (串行输出)
> MR (PIN10) master reset (active LOW) (主机复位,低有效)
> SHCP (PIN11) shift register clock input (移位寄存器时钟输入)
> STCP (PIN12) storage register clock input (存储寄存器时钟输入)
> OE (PIN13) output enable input (active LOW) (输出使能输入端,低有效)
> DS (PIN14) serial data input (串行数据输入)
> Q0~Q7 (PIN) parallel data output ~(8位并行数据输出)
> VCC
> GND < VCC与GND无需多言。
< DS为串行数据输入。
< SHCP为串行移位时钟,当其为上升沿时,DS上的电平状态会被写入移位寄存器的最低位,移位寄存器
的值会整体向高位移一位。
< STCP为存储寄存器时钟输入(正确理解为锁存脚),当其为高电平时,移位寄存器的值被保存在了存
储寄存器,并且存储器的值被锁存在了IO口。
< MR为复位脚,当其为低电平时,存储寄存器的值会被清零。
< OE为输出使能脚,当其为高电平时,8位并行输出可以输出电平,若是为低电平,则不可以输出。
< Q7S为串行输出脚,作为级联之用,其通常连接至下一级74HC595的DS端。当第一级8位移位寄存器移
满了之后,再有新的DS需要移位时,则第一级的Q7位会通过Q7S移动到下一级74HC595的DS端,这样就实现了
级联功能。 对74HC595实际使用举个例子:
某项目单片机需要控制多达10个甚至更多的数码显示管。如果用扫描式的方法进行点亮数码管的话,那
么数码管的亮度会非常暗。原因在于,假设一个数码管是20mA可以让其亮度很高的话,以1s为一个周期,若
只有1个数码管,则1s这个数码管都在亮,若是10个的话,那么每个数码管会亮100ms,灭900ms,相当于每个
数码管的平均电流只剩下2mA,导致的结果既是数码管会很暗。这个时候74HC595,就可以发挥作用了。级联十
个,然后按照计算好的数据移位进去,最后使能输出引脚,锁存输出就可10个数码管一起显示了。 三、参考文献
在研究74HC595的时候,两篇关于74HC595级联和使用的文章写的很详细,链接如下: Introduction to 74HC595 shift register – Controlling LEDs
http://www.protostack.com/blog/2010/05/introduction-to-74hc595-shift-register-controlling-16-leds/ How to Cascade Shift Registers
http://www.learningaboutelectronics.com/Articles/Cascade-shift-registers.php 至此,记录完毕。 记录时间:--
记录地点:深圳WZ