Arduino与74HC595驱动数码管

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino与74HC595驱动数码管相关的知识,希望对你有一定的参考价值。

参考技术A     74HC595驱动的数码管电路板是Arduino常用的扩展板。某宝上卖的经常是两块芯片驱动4位数码管或者8位数码管的电路板。

74HC595是一个串行移位寄存器,两块芯片级联,芯片U1的串行输出引脚连接芯片U2的串行输入引脚。当串口输入8个比特数据data1时,数据data1在U1芯片中;当串口再次输入8个比特数据data2时,data1进入到芯片U2中,data2留在芯片U1中。

综上所述,Arduino单片机应该给数码管扩展板两个char形数据,data1是数码管显示的数字,data2是让哪个数码管亮的位置信息。两个Byte的数据串行发送完毕后,RCLK接口输出一个上升沿信号,所有的数据由寄存器传送到锁存器中。

顺便强调一下,下面电路图中的P2是连接单片机的接口,P1是多块扩展板的级联接口。不要把线接错了呦!

想要看74HC595原理的朋友,可以查看下面的链接:

https://wenku.baidu.com/view/d69cdbbc19e8b8f67c1cb977.html

扩展板的驱动函数可以用下面的程序:

https://github.com/supermfc/Tube595

程序应该没有问题,因为我的电路板接口接反了,所以被迫研究了扩展板和芯片的原理,全是泪水啊!

Arduino IDE中有一个库函数shiftOut,可以方便地实现串并转换。顺便给IDE点个赞,reference功能很好用。

Arduino UNO + 74HC595联级+数码管实现0000-9999循环计数显示+ Proteus仿真

Arduino UNO + 74HC595联级+数码管实现0000-9999循环计数显示+ Proteus仿真


2个 74HC595联级,最大支持8位数码管显示也就是0-10的9次幂减1

  • Proteus仿真

这次采用的是4位共阳数码管来显示的。

实例代码

int latchPin=8; //ST CP of 74HC595
int clockPin=12;//SH CP of 74HC595

以上是关于Arduino与74HC595驱动数码管的主要内容,如果未能解决你的问题,请参考以下文章

Arduino UNO + 74HC595联级+数码管实现00-99循环计数显示+ Proteus仿真

Arduino UNO + 74HC595联级+数码管实现000-999循环计数显示+ Proteus仿真

Arduino UNO + 74HC595联级+数码管实现0000-9999循环计数显示+ Proteus仿真

Arduino UNO + 74HC595+数码管实现0-9循环计数显示+ Proteus仿真

Arduino UNO+DS1302+74HC595联级+8位数码管时钟+Proteus仿真(修复篇)

Proteus仿真Arduino UNO+DS1302+74HC595联级+8位数码管时钟+串口设置时间