正常显示秒数代码数码管
时间: 2024-02-18 22:03:18 浏览: 79
以下是使用Arduino控制4位数码管显示秒数的示例代码:
```
int digitPins[] = {2, 3, 4, 5}; // 数码管的4个引脚
int segmentPins[] = {6, 7, 8, 9, 10, 11, 12}; // 数码管的7个段的引脚
void setup() {
// 设置引脚为输出模式
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT);
}
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
int second = second(); // 获取当前秒数
int digit1 = second / 10; // 十位数
int digit2 = second % 10; // 个位数
// 显示十位数
digitalWrite(digitPins[0], HIGH); // 打开第一个数码管
displayNumber(digit1); // 显示数字
delay(5); // 延时5毫秒
digitalWrite(digitPins[0], LOW); // 关闭第一个数码管
// 显示个位数
digitalWrite(digitPins[1], HIGH); // 打开第二个数码管
displayNumber(digit2); // 显示数字
delay(5); // 延时5毫秒
digitalWrite(digitPins[1], LOW); // 关闭第二个数码管
}
void displayNumber(int digit) {
// 数字对应的7段LED灯亮灭状态
// a
// ---
// f| |b
// | g |
// ---
// e| |c
// | d |
// ---
byte numbers[] = {
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B00111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};
// 显示数字
for (int i = 0; i < 7; i++) {
bool isOn = bitRead(numbers[digit], i);
digitalWrite(segmentPins[i], isOn ? LOW : HIGH);
}
}
```
注意,以上代码需要使用4位共阳数码管,并且需要在Arduino IDE中安装对应的库。
阅读全文