前言 :
上期我们留了一个问题:
5个IO,真的能控制20个LED吗?
有些不做消费级遥控器的朋友,可能不太理解其中的成本压力。
但如果你做过大批量、微利的产品就会知道------
用最少的成本,实现最多的功能,才是真正的工程能力。
本期,我们就来拆解这个操作过程。
一、原理:与按键T型扫描相似,但有本质不同
这种方法,和按键的T型扫描非常接近。
但因为:
按键 → 无方向(按下即导通)
LED → 有方向(必须正向偏置才亮)
所以计算方式不同:
按键扫描数量 = 组合计算方法

LED扫描数量 = 排列计算

结论:
同样n个IO,可控制的LED数量 = 可扫描按键数量的2倍
5个IO →
按键:5×4/2=105×4/2=10 个
LED:5×4=205×4=20 个 ✅
二、电路图(核心)

(上图为:LED电路)
乍一看,和T型按键扫描电路结构一模一样。
唯一的区别是:
每个"按键位置"被替换为正反并联的两个LED。
正向 → 亮其中一个LED
反向 → 亮另一个LED

(对比图)
三、操作过程(完整时序)
我们以 5个IO(IO1--IO5) 为例,逐步说明。
第一步:IO1 = 低电平,准备点亮正向LED组
IO1 输出 低电平
IO2--IO5 设置为 输入(不加上下拉)
此时所有LED熄灭
依次判断并点亮:
|---------|----------|----------------|--------|----------|
| LED | 条件判断 | 操作 | 等待 | 恢复 |
| LED1 | 需要点亮 | IO2 = 输出 + 高电平 | 50μs | IO2恢复为输入 |
| LED2 | 需要点亮 | IO3 = 输出 + 高电平 | 50μs | IO3恢复为输入 |
| LED3 | 需要点亮 | IO4 = 输出 + 高电平 | 50μs | IO4恢复为输入 |
| LED4 | 需要点亮 | IO5 = 输出 + 高电平 | 50μs | IO5恢复为输入 |
✅ 此时完成 LED1--LED4 的控制。
第二步:IO1 = 高电平,准备点亮反向LED组
IO1 改为 输出高电平
依次操作 LED5--LED8
|---------|----------|----------------|--------|----------|
| LED | 条件判断 | 操作 | 等待 | 恢复 |
| LED5 | 需要点亮 | IO2 = 输出 + 低电平 | 50μs | IO2恢复为输入 |
| LED6 | 需要点亮 | IO3 = 输出 + 低电平 | 50μs | IO3恢复为输入 |
| LED7 | 需要点亮 | IO4 = 输出 + 低电平 | 50μs | IO4恢复为输入 |
| LED8 | 需要点亮 | IO5 = 输出 + 低电平 | 50μs | IO5恢复为输入 |
✅ 此时完成 LED5--LED8 的控制。
第三步:切换公共端,继续点亮其他方向组合
把 IO1 恢复为输入
把 IO2 设为输出低电平(作为新的公共阴极)
依次操作 LED9--LED11(以及后续组合)
按此逻辑循环扫描所有 5×4=205×4=20 种IO对组合。
四、时间参数与视觉连续性
每个LED点亮/熄灭切换时间 = 50μs
20个LED完整一轮 = 20×50μs=1ms
扫描频率 = 1kHz
人眼的视觉暂留极限约 24Hz
1kHz 远高于此 → 人眼看不出LED在快速切换
只会"看到"所有需要的LED同时持续点亮
五、总结一句话
不是用更多IO,而是用"方向 + 时间"换数量。
这种方法在消费电子、遥控器、键盘背光、小家电面板中非常实用。
既省IO,又省MCU成本,还能保持用户体验。
关注我,带你掌握更多射频遥控与嵌入式底层的控制逻辑。
深圳市振浩微电子有限公司成立于2015年,是一家致力于芯片研发以及成果转化的国家高新技术企业 ,10多年都在深耕SUB1G,各类产品规格,适合不同大小、距离、部署、预算等项目要求的落地方案有很多,公里级稳定传输也不是问题。如果你想将芯片拿回去自主开发掌握终端产品核心技术,我们自研的高集成芯片,简化产品电路设计,会让您的二次开发更省心,欢迎私信,免费拿样测试