可以,但受限于引脚数量和驱动能力。MCU引脚通常只能提供几mA电流,直接驱动多个LED会拉低电压甚至烧毁引脚。工程上常用两种方案:1)**动态扫描**(分时复用):利用人眼视觉暂留,快速轮流点亮每行/列,如8x8点阵用16个引脚驱动64个LED,刷新率>50Hz即可无闪烁。2)**锁存器/移位寄存器**(如74HC595、TM1640):用3个引脚串行控制多个输出,级联可扩展至任意数量。若需同时常亮且亮度高,必须加三极管/MOSFET驱动或使用LED驱动芯片(如MAX7219)。代码示例(动态扫描):
```c
for (int col=0; col<8; col++) {
PORT = 1<<col; // 选通列
PORTB = rowData[col]; // 输出行数据
delay_ms(1); // 刷新
}
```
注意:扫描频率需稳定,避免闪烁;大电流场景需计算总功耗并加散热。
mcuku 阿沐 · 2026-08-19