6个LED数码管动态显示实验代码
时间: 2024-04-02 17:32:27 浏览: 168
好的,以下是一个简单的6个LED数码管动态显示实验的代码,你可以将其复制到Arduino IDE中进行编辑和上传:
```
int digitPins[] = {2, 3, 4, 5, 6, 7}; // 数码管的数字引脚
int segmentPins[] = {8, 9, 10, 11, 12, 13}; // 数码管的段引脚
int digits[][7] = { // 数字的段码表
{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 numDigits = 6; // 数字的位数
unsigned long delayTime = 1000; // 每个数字显示的时间
void setup() {
for (int i = 0; i < numDigits; i++) {
pinMode(digitPins[i], OUTPUT);
digitalWrite(digitPins[i], HIGH); // 关闭数码管显示
}
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
for (int num = 0; num <= 999999; num++) {
int digitsArray[numDigits];
int n = num;
for (int i = numDigits - 1; i >= 0; i--) {
digitsArray[i] = n % 10;
n /= 10;
}
for (int i = 0; i < numDigits; i++) {
digitalWrite(digitPins[i], LOW); // 打开数码管显示
for (int j = 0; j < 7; j++) {
digitalWrite(segmentPins[j], digits[digitsArray[i]][j]);
}
delay(delayTime);
digitalWrite(digitPins[i], HIGH); // 关闭数码管显示
delay(5); // 稍作延时,避免数字之间的闪烁
}
}
}
```
这个程序会将数字从0到999999在6个数码管上以动态效果显示,每个数字显示的时间为1秒。你可以根据需要调整延时时间和数字的范围。
阅读全文