流水灯用单片机实现只需要几行代码,要是用电路设计的话,稍微复杂一些,主要应用的是555芯片和4017芯片,实现了小灯自动流水的功能。
芯片介绍
电路设计主要应用了555芯片和4017芯片,555芯片功能非常强大,他可以连接成施密特触发器、单稳态触发器、多谐振荡器等等,这里用到的是555构成的多谐振荡器,可以自动输出矩形脉冲,为了可以控制小灯流水速度,这里做成了占空比可调的多谐振荡器,即调节滑动变阻器阻值就可以控制555输出脉冲的高电平时间,555芯片的相关功能和输出脉冲的周期时间计算可以看一下数字电路的课本。
4017芯片从他的数据手册上可以看出它是一个十进制计数器,其中E是使能端,CLK是输入的时钟脉冲信号,Q0-Q9为计数输出,CO为进位输出。也就是当有一个时钟信号输入时,Q0输出高电平,其余的输出低电平,当两个时钟信号输入时,Q1输出高电平,其余输出低电平,以此类推,当Q9输出高电平后,下一个时钟信号到来时,Q0输出高电平,同时CO输出高电平,表示此时有进位输出。
电路连接
将555定时器输出的矩形波接到4017的输入端,这样4017就有了计数方波,但是这里需要注意的是在555输出端应该接个下拉电阻,否则在仿真的时候会报错。
电路拓展
将555、4511、4017一起使用,可使数码管循环显示一连串数字,比如我想显示5201314,连接电路如下:
这里用到了两个4017芯片,如果只用一个芯片的话,高电平输出到4511时,似乎电压不够,大概只有2点几伏,无法点亮数码管,如采用三极管放大电压,电路可能更繁琐,我直接用两个芯片,但是这里的上电复位好像有点小问题,仿真的时候刚一上电从第二个LED开始点亮,刚上电时电容相当于短路,正来说应该是立即复位,这个问题还有待研究。