arduino控位数码管循环显示0-9,A-F
时间: 2023-12-03 18:43:04 浏览: 221
可以使用以下代码实现:
```
int digits[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71}; // 数码管显示的十六进制数值
void setup() {
for(int i=2; i<=9; i++) {
pinMode(i, OUTPUT); // 设置数字引脚为输出
}
}
void loop() {
for(int i=0; i<16; i++) { // 循环显示0-F
for(int j=2; j<=9; j++) { // 显示到8位数码管上
digitalWrite(j, HIGH); // 点亮该数码管
delay(10); // 等待一段时间
digitalWrite(j, LOW); // 熄灭该数码管
delay(10); // 等待一段时间
digitalWrite(j, HIGH); // 再点亮该数码管
digitalWrite(10, digits[i] & 0x01); // 数码管1显示该数值的最低位
digitalWrite(11, (digits[i] >> 1) & 0x01); // 数码管2显示该数值的次低位
digitalWrite(12, (digits[i] >> 2) & 0x01); // 数码管3显示该数值的第三位
digitalWrite(13, (digits[i] >> 3) & 0x01); // 数码管4显示该数值的最高位
delay(100); // 等待一段时间
}
}
}
```
这段代码定义了一个数组 `digits`,它包含了0-F每个数字对应的十六进制数值。然后在 `setup()` 函数中,我们将引脚2-9设置为输出模式。在 `loop()` 函数中,我们通过两层循环来控制数码管的显示,外层循环控制0-F的循环显示,内层循环控制数码管的显示。在每次循环中,我们先点亮该数码管,然后利用 `digits` 数组来控制每个数字在数码管上的显示,最后等待一段时间后熄灭该数码管,进入下一次循环。
阅读全文