arduino共阴数码管循环显示 2023 5 25
时间: 2024-05-24 11:13:29 浏览: 75
下面是使用共阴数码管循环显示日期的 Arduino 代码:
```
int digitPins[4] = {2, 3, 4, 5}; // 数码管的四个引脚
int numPins[10][7] = { // 数字 0~9 在数码管上的显示状态
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
int digit = 0; // 当前显示的数码管编号
int num = 0; // 当前显示的数字
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT);
}
}
void loop() {
// 显示数字的个位数
digitalWrite(digitPins[digit], LOW); // 先关闭当前数码管的显示
for (int i = 0; i < 7; i++) {
digitalWrite(i + 6, numPins[num % 10][i]); // 根据当前数字的个位数在数码管上显示
}
digitalWrite(digitPins[(digit + 1) % 4], HIGH); // 打开下一个数码管的显示
digit = (digit + 1) % 4; // 切换到下一个数码管
delay(5); // 短暂延迟,避免闪烁
// 显示数字的十位数
digitalWrite(digitPins[digit], LOW);
for (int i = 0; i < 7; i++) {
digitalWrite(i + 6, numPins[num / 10][i]); // 根据当前数字的十位数在数码管上显示
}
digitalWrite(digitPins[(digit + 1) % 4], HIGH);
digit = (digit + 1) % 4;
delay(5);
// 更新数字
num++;
if (num > 9999) {
num = 0;
}
}
```
这个代码可以循环显示日期,只需要将 `num` 的初始值设置为 `20230525` 即可。
阅读全文