74HC595移位寄存器怎么接线?Arduino三个引脚扩展出8个IO口控LED数码管的原理和代码

2026-10-19 09:45:03 31阅读

做项目最头疼的就是Arduino引脚不够用——屏幕占走几个,传感器再占几个,就剩不下了。74HC595这个8位移位寄存器,就是用来“凭空”变出额外输出的:只用三个引脚,就能扩展出8个输出,还能级联再接更多。这篇讲它怎么接、怎么用代码让它“发光”。

74HC595引脚怎么接Arduino

一块74HC595有16个脚,真正要Arduino控制的只有三个:数据脚DS(也叫SER)接数据、时钟脚SH_CP(也叫SRCLK)负责一位一位把数据移进去、锁存脚ST_CP(也叫RCLK)最后把数据一次性送到输出。常规接法DS接D11、SH_CP接D12、ST_CP接D8,当然引脚随便挑能PWM的也成。供电上VCC接5V、GND接地,另外OE脚接地、MR脚接5V,让输出一直有效。

74HC595移位寄存器接Arduino的电路原理图,DS/SH_CP/ST_CP三线控制

电路图把三个控制脚和8个输出脚Q0到Q7的关系标得很清楚——发一个字节,8个输出脚就按位点亮或熄灭。Q0到Q7每个脚挂一个LED,LED另一头通过限流电阻回地,就能拿来做流水灯。

为什么三个引脚能控八个输出

奥妙在于“串行移位”:Arduino把要显示的8个bit,一个bit一个bit从DS脚送进去,每送一个bit给SH_CP一个上升沿,就把数据往前进一位。全部8个bit送完后,给ST_CP一个脉冲,数据就从内部寄存器一次性搬到输出脚上,8个输出同时亮起。这也是“串转并”的由来。

74HC595在面包板上接8个LED的实物接线图

原理图你可能嫌抽象,看这张面包板实物图就懂了——中间那颗黑色芯片就是74HC595,左边三根杜邦线连Arduino,右边一排LED各接一个输出。模块虽小,一个就能顶8个Arduino引脚,做点阵、数码管扫描都是它的主场。

控制74HC595的代码示例

核心就是Arduino自带的shiftOut函数:把数据脚、时钟脚、字节序和一个byte值传进去,它会自动一位一位把数据移出;移位完成后把锁存脚拉低再拉高,数据就落到了输出上。比如想让第一颗灯亮,就移出一个高位为1的字节再锁存。要是觉得一个不够,还能把Q7'级联到下一颗74HC595的DS脚,几个芯片叠起来,3根线就能控制几十个输出。


作者:隔壁老王的教程
链接:https://www.aiddithome.com/p/3968d91e163be.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
深圳打工人Alan
1楼 · 2026-10-19 09:45:05

MR接5V、OE接地这两个别漏,不然芯片可能不工作

锡点
2楼 · 2026-10-19 09:45:04

注意锁存很重要,忘记锁存那一下,输出就一直卡在旧数据上

胶佬憨憨
3楼 · 2026-10-19 09:45:04

级联起来更爽,两片就能控16个灯,点阵都靠它扫

拆机党
4楼 · 2026-10-19 09:45:03

三个脚控八个输出,第一次跑通流水灯的时候真的有被惊艳到