使用单片机驱动74CH595(8位串行输入、并行输出、可级联芯片)遇到的问题和解决过程
1. 74CH595特点是8位串行输入、并行输出、可级联,管脚图如下
资料显示,74CH595的数据输入频率可达到100MHz(供参考,未验证。)
Q0-Q1是数据并行输出引脚
DS是数据串行输入引脚
STCP是存储寄存器时钟信号,上升沿时,芯片会将移位寄存器中的数据写入存储寄存器,实现并行输出。注记:ST是Storage缩写,存储。
SHCP是移位寄存器时钟信号,上升沿时,芯片会将DS输入的bit(0或1)写入移位寄存器。写入过程用”数据压入“更贴切:写入首个bit时,首先会对应Q0位置;写入第二个bit时,上一个bit会移位到Q1位置,最新bit存放Q0位置,以此类推。最终,第一个写入的bit,将从并行口Q7输出。
一般使用DS STCP SHCP三根线进行控制即可。
OE横杠是片选使能,低电平有效,可接地。
MR横杠是芯片清零,低电平时芯片清零,可接5v VCC即正极。
Q7S是数据溢出管脚,从Q7位置被挤下来的bit会从Q7S管脚输出。此管脚作为下一个74HC595芯片DS口的输入,可实现级联,此时各个级联芯片的STCP SHCP管脚并联即可。

2. 实际使用发现,试用STC单片机IO口,控制两个74HC595驱动4位数码管时,工作不稳定,有时显示正常、有时不显示,有时乱码。本以为是74HC595工作频率不够导致的,于是增加延时,降低控制信号频率,症状还是一样,问题仍然没解决。试用示波器查看,波形失真,而且,本应为5v的高电平,有时候测出来只有3v左右,如果断开连接,直接测单片机IO口,则波形正常。
猜测可能是单片机IO口的驱动能力不够,于是将对应的三个单片机IO口设置成“推挽”模式,增强驱动能力。之后问题解决。不过这种解决方法可能不对,先记录,后面在仔细排查。示波器波形图如下。
单片机IO用准双向口的驱动波形:

单片机IO用推挽输出模式增强驱动能力后的波形:

浙公网安备 33010602011771号