从数码管到点阵屏:动态扫描加595,3个IO驱动256个LED

短文标题:从数码管到点阵屏:动态扫描加595,3个IO驱动256个LED

你有没有想过一个问题:4位数码管需要多少个IO?如果每个段单独控制,一位数码管8段,4位需要32个IO。但实际电路中,只需要12个IO------8根段选线+4根位选线。因为用了动态扫描如果进一步用74HC595,3个IO就能驱动任意多的LED。原理套路:动态扫描(时间换空间)+ 595级联(串行转并行)= 3个IO驱动无限LED。

**动态扫描:轮流点亮,骗过人眼,**4位数码管不全是同时亮的,是轮流亮的。

  1. 第1毫秒:打开第1位,送第1位的段码(比如"1")
  2. 第2毫秒:关第1位,打开第2位,送第2位的段码(比如"2")
  3. ......

一个循环4ms,频率250Hz,远高于人眼的"视觉暂留"(约50Hz)。眼睛被"骗"了,以为四个数字同时亮。**动态扫描的本质:用时间换空间。**不需要32根线同时控制32个信号,只需要12根线分时工作,一个时间点只亮一位。

74HC595:串行输入、并行输出"段选"有8根线,如果你直接用GPIO控制,就占8个引脚。用一片74HC595:

  • 段选8根线 → 连到595的8个输出引脚
  • 595的3个输入引脚:数据A、移位时钟、锁存时钟
  • 595内部有8位移位寄存器 + 锁存器

操作时序:送8bit串行数据 → 锁存 → 8个输出引脚同时更新。3个IO换8个输出,净赚5个。

菊花链级联:从8个到无限个, 一片595得8个输出,两片级联得16个输出,三片得24个输出......级联方法:第一片595的串行输出Q7'接到第二片595的数据输入A。这样送16bit数据:前8bit进第一片,后8bit流到第二片。锁存信号同时给两片,16个输出同步更新。3个IO,N片595,8N个输出。

**点阵屏的大阵仗,**16×16点阵屏有256个LED。如果直接用IO控制行和列,需要16+16=32个IO。用动态扫描 + 595:

  • 用4片595控制16根行线(4片×8位=32位?实际行线16根,用2片595就够了)
  • 再用4片595控制16根列线,总共6片595(2片行+4片列)

3个IO驱动6片595级联,256个LED轻松驱动。应用场景

  • 数码管扩展:多位数码管,节省IO
  • LED点阵屏:低成本广告屏、时钟、跑马灯
  • 工业指示灯板:几十个LED状态显示
  • 任何IO不够、输出点多的场景

74HC595诞生了几十年,依然是低成本IO扩展的首选方案。

**这个故事的启示,**为什么3个IO能驱动无限LED?

  • 动态扫描:轮流工作,利用人眼视觉暂留
  • 595级联:串行传输,并行输出,用时间换空间

**时间可以换空间,空间不够,时间凑。写在最后,**下次你画板子发现IO不够,第一反应别换大芯片。想想两招:动态扫描(分时复用) + 74HC595菊花链。IO不够,595来凑。


(本文灵感源于于振南《新概念ARM32单片机》教程第3.9节"数码管驱动与GPIO扩展"和第3.12节"点阵屏动态扫描实现",感谢作者将动态扫描和串行扩展的精髓讲得如此通透。)


如果您觉得这个故事对您有启发,欢迎点赞、转发,让更多工程师看到这个藏在"动态扫描+595菊花链"背后的"用时间换空间"智慧。

相关推荐
树的枝35 分钟前
【STM32】03.中断和EXTI外设
笔记·stm32·单片机·嵌入式硬件
单片机杂货铺2 小时前
【单片机毕业设计选题】基于stm32单片机儿童公路车速度检测报警
stm32·单片机·嵌入式硬件·51单片机·硬件工程·课程设计
振南的单片机世界3 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
嵌入式阿蔡3 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
NYFEA5 小时前
徕飞 FCA系列全面上新,一站式I/O扩展国产替代方案
单片机·嵌入式硬件
国科安芯6 小时前
ASL622S:把“信号失真“挡在门外的航天级运放
网络·单片机·嵌入式硬件·架构·状态模式·低轨卫星星座
XiHongShi20166 小时前
STM32H7 FLASH和SRAM标准例程
stm32·单片机·嵌入式硬件
单片机杂货铺6 小时前
【单片机毕业设计选题】基于单片机的智能牛奶保鲜箱设计
人工智能·stm32·单片机·物联网·毕业设计·课程设计
捷瑞电子工坊18 小时前
FreeRTOS任务管理:从入门到实践(标准库版)
stm32·嵌入式·freertos·实时操作系统·任务管理·标准外设库·任务挂起与恢复
莫浅子1 天前
day01-USB架构与枚举
c++·单片机·嵌入式驱动