单片机心形灯从1到16依次点亮源代码
时间: 2024-09-20 20:02:23 浏览: 28
单片机上的心形灯动态点亮通常涉及到LED数组控制,这里假设我们使用8x8点阵显示模块,如Arduino Uno板上的数码管。下面是基于C语言的一个简单示例,使用逐行扫描的方式让每个LED代表数字1到16:
```c
#include <LiquidCrystal.h> // 导入LCD库
// 初始化7段显示模块
LiquidCrystal lcd(0, 1, 2, 3, 4, 5);
void setup() {
lcd.begin(8, 8); // 设置为8x8点阵
}
void loop() {
for (int i = 1; i <= 16; i++) { // 从1循环到16
int row = 0; // 当前行
int bitMask = 1 << (i - 1); // 获取当前数对应的二进制位
while (row < 8) { // 对每行进行扫描
if (bitMask & 1) { // 如果该位为1,点亮对应LED
lcd.set(row++, bitMask);
}
else {
lcd.clearRow(row++); // 否则清空该列
}
bitMask >>= 1; // 右移一位,继续处理下一位
}
delay(100); // 暂停一下,等待视觉效果
}
}
```
阅读全文