编写代码四段数码管循环显示数字0000-9999
时间: 2024-01-08 10:03:26 浏览: 166
数码管的0到999的显示
可以使用Arduino或者其他单片机进行编写,代码如下:
```C++
int digit1 = 2; // 第1位数码管对应的引脚
int digit2 = 3; // 第2位数码管对应的引脚
int digit3 = 4; // 第3位数码管对应的引脚
int digit4 = 5; // 第4位数码管对应的引脚
int segA = 6; // 数码管的Segment A对应的引脚
int segB = 7; // 数码管的Segment B对应的引脚
int segC = 8; // 数码管的Segment C对应的引脚
int segD = 9; // 数码管的Segment D对应的引脚
int segE = 10; // 数码管的Segment E对应的引脚
int segF = 11; // 数码管的Segment F对应的引脚
int segG = 12; // 数码管的Segment G对应的引脚
int num[10][7] = { // 数字0-9的Segment部分的状态
{1,1,1,1,1,1,0},
{0,1,1,0,0,0,0},
{1,1,0,1,1,0,1},
{1,1,1,1,0,0,1},
{0,1,1,0,0,1,1},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,1},
{1,1,1,0,0,0,0},
{1,1,1,1,1,1,1},
{1,1,1,1,0,1,1}
};
void setup() {
pinMode(digit1, OUTPUT);
digitalWrite(digit1, HIGH);
pinMode(digit2, OUTPUT);
digitalWrite(digit2, HIGH);
pinMode(digit3, OUTPUT);
digitalWrite(digit3, HIGH);
pinMode(digit4, OUTPUT);
digitalWrite(digit4, HIGH);
pinMode(segA, OUTPUT);
digitalWrite(segA, LOW);
pinMode(segB, OUTPUT);
digitalWrite(segB, LOW);
pinMode(segC, OUTPUT);
digitalWrite(segC, LOW);
pinMode(segD, OUTPUT);
digitalWrite(segD, LOW);
pinMode(segE, OUTPUT);
digitalWrite(segE, LOW);
pinMode(segF, OUTPUT);
digitalWrite(segF, LOW);
pinMode(segG, OUTPUT);
digitalWrite(segG, LOW);
}
void loop() {
for(int i=0; i<10000; i++) { // 循环0-9999
int thousands = i / 1000; // 千位数
int hundreds = (i % 1000) / 100; // 百位数
int tens = (i % 100) / 10; // 十位数
int units = i % 10; // 个位数
digitalWrite(digit1, LOW); // 第1个数码管亮
digitDisplay(num[thousands][0], num[thousands][1], num[thousands][2], num[thousands][3], num[thousands][4], num[thousands][5], num[thousands][6]); // 显示千位数
delay(5);
digitalWrite(digit2, LOW); // 第2个数码管亮
digitDisplay(num[hundreds][0], num[hundreds][1], num[hundreds][2], num[hundreds][3], num[hundreds][4], num[hundreds][5], num[hundreds][6]); // 显示百位数
delay(5);
digitalWrite(digit3, LOW); // 第3个数码管亮
digitDisplay(num[tens][0], num[tens][1], num[tens][2], num[tens][3], num[tens][4], num[tens][5], num[tens][6]); // 显示十位数
delay(5);
digitalWrite(digit4, LOW); // 第4个数码管亮
digitDisplay(num[units][0], num[units][1], num[units][2], num[units][3], num[units][4], num[units][5], num[units][6]); // 显示个位数
delay(5);
digitalWrite(digit1, HIGH); // 关闭所有数码管
digitalWrite(digit2, HIGH);
digitalWrite(digit3, HIGH);
digitalWrite(digit4, HIGH);
delay(5);
}
}
void digitDisplay(int a, int b, int c, int d, int e, int f, int g) { // 数码管显示函数
digitalWrite(segA, a);
digitalWrite(segB, b);
digitalWrite(segC, c);
digitalWrite(segD, d);
digitalWrite(segE, e);
digitalWrite(segF, f);
digitalWrite(segG, g);
}
```
阅读全文