点亮数码管 使两个数码管动态显示0~99
时间: 2023-07-04 16:09:26 浏览: 150
好的,可以使用Arduino来实现这个功能。需要连接两个共阳数码管到Arduino板子上,并使用两个74HC595移位寄存器来控制数码管的显示。
以下是代码实现:
```
int latchPin = 8; // 控制锁存器的引脚
int clockPin = 12; // 控制时钟的引脚
int dataPin = 11; // 控制数据的引脚
// 数码管显示的数字
byte digits[100] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 100; i++) {
int tens = i / 10; // 十位数
int ones = i % 10; // 个位数
// 数码管1显示十位数
shiftOut(dataPin, clockPin, MSBFIRST, digits[tens]);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000); // 打开第一个数码管
digitalWrite(latchPin, HIGH);
delay(5);
digitalWrite(latchPin, LOW);
// 数码管2显示个位数
shiftOut(dataPin, clockPin, MSBFIRST, digits[ones]);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100); // 打开第二个数码管
digitalWrite(latchPin, HIGH);
delay(5);
digitalWrite(latchPin, LOW);
}
}
```
这个代码会循环显示0~99的数字,每个数字会显示500毫秒。你需要根据自己的电路连接方式来进行修改。
阅读全文