它的使用方法也很简单,并行输出接到8段数码管上,串行输入与输出首尾连接即可。单片机提供第一个74HC595的串行输入,最后一个74HC595的串行输出悬空。所有的74HC595共用2根时钟线、1根使能线。因此,理想情况下单片机提供4个IO口,能驱动后续的无限多个74HC595。原理图如下:
但实际情况下,74HC595驱动8段数码管,究竟最多能串联多少呢?
换一种问法:
第一,电路板能够通过的最大电流
第二,推挽输出能够驱动多少个高阻态输入?
第三,推挽输出可以传输多长距离?
第四,末端位置的电源线和地线的变化?
(图中左端的数码管比右端稍暗,是因为限流电阻的关系。所处的位置对它的亮度影响不大。)
第一,电路板能够通过的最大电流?
限流电阻取1K时,每个74HC595大概需要8mA的电流。
电源线宽度为25mil,铜层厚度为1oz,则最大电流为1.7A。
因此,可以串联的74HC595个数为1.7A/8mA=212个。
第二,推挽输出能够驱动多少个高阻态输入?
典型的推挽输出,驱动能力为4mA。
74HC595的技术手册上,高阻态输入的漏电流为1uA。
一个推挽输出至少可以驱动4000个高阻态输入引脚。换言之,单片机的IO口可以驱动4000个74HC595。
(实际上,IO口在电平快速切换的时候,比静态驱动的情况要稍微复杂一些,需要进行阻抗匹配的处理。)
第三,推挽输出可以传输多长距离?
推挽输出为TTL电平,使用它传输信号,距离一般不会超过2米。这不是受TTL电平的驱动能力限制,而是因为它需要对地参考,所以很容易受到环境的干扰。
如果工作环境的干扰很小,传输距离可以更长一些。
第四,末端位置的电源线和地线的变化?
串联60个74HC595小电路板,以500ms时间间隔显示0~9,实测发现:当数码管熄灭时,最末端供电电压为+5V;当数码管点亮时,最末端供电电压为+2.91V。74HC595的最低工作电压在+2V。因此设每个74HC595电路板的线上电阻为R,串联个数为x,则有:
x*R*(8mA*x/2)=U
x=60,U=2.1,因此R=0.146。
U=3V时,x=71。
因此,受线上压降和74HC595的最低工作电压限制,能够串联的个数限制为71。
结论:
综合以上四点,可以知道74HC595驱动8段数码管最大串联数量为71。
而实际上,通过将电源和地线变得更加短粗,并且选择更好的接插件,可以减少线上电阻,从而降低线上压降;而且由于很少会同时点亮数码管的所有段,所以实际上能够串联的个数比71还要更多一些。