数码管循环点亮
时间: 2023-06-21 08:20:44 浏览: 111
好的,以下是数码管循环点亮的代码示例,假设使用的是4位共阳数码管:
```c
int digitPins[] = {2, 3, 4, 5}; // 数码管的段选引脚
int digitNums[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; // 数码管每个数字对应的段选状态
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT); // 设置段选引脚为输出模式
}
}
void loop() {
for (int i = 0; i < 10; i++) { // 循环显示0-9的数字
for (int j = 0; j < 4; j++) { // 逐位循环点亮
digitalWrite(digitPins[j], LOW); // 关闭前一位数码管的段选
digitalWrite(6 + j, digitNums[i] & (1 << j)); // 设置当前位数码管的段选状态
}
delay(500); // 每个数字显示500ms
}
}
```
以上代码实现了循环显示0-9的数字,每个数字显示500ms。其中,digitPins数组存储了4个段选引脚的引脚号,digitNums数组存储了0-9的数字对应的段选状态。在循环中,使用两个for循环,第一个循环逐个显示0-9的数字,第二个循环逐位点亮数码管。在每次循环中,先关闭前一位数码管的段选,再设置当前位数码管的段选状态,最后延时500ms。