用c程序写一个在8位数码管上显示20040319这串数字
时间: 2023-05-18 19:04:32 浏览: 41
以下是一个简单的C程序,可以在8位数码管上显示20040319这串数字:
```
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
// 数码管引脚定义
#define A_PIN 0
#define B_PIN 1
#define C_PIN 2
#define D_PIN 3
#define E_PIN 4
#define F_PIN 5
#define G_PIN 6
#define DP_PIN 7
// 数码管数字定义
#define NUM_0 0b01111110
#define NUM_1 0b00110000
#define NUM_2 0b01101101
#define NUM_3 0b01111001
#define NUM_4 0b00110011
#define NUM_5 0b01011011
#define NUM_6 0b01011111
#define NUM_7 0b01110000
#define NUM_8 0b01111111
#define NUM_9 0b01111011
// 数码管显示函数
void display(int num) {
switch (num) {
case 0:
digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, HIGH);
digitalWrite(E_PIN, HIGH);
digitalWrite(F_PIN, HIGH);
digitalWrite(G_PIN, LOW);
digitalWrite(DP_PIN, LOW);
break;
case 1:
digitalWrite(A_PIN, LOW);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, LOW);
digitalWrite(E_PIN, LOW);
digitalWrite(F_PIN, LOW);
digitalWrite(G_PIN, LOW);
digitalWrite(DP_PIN, LOW);
break;
case 2:
digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, LOW);
digitalWrite(D_PIN, HIGH);
digitalWrite(E_PIN, HIGH);
digitalWrite(F_PIN, LOW);
digitalWrite(G_PIN, HIGH);
digitalWrite(DP_PIN, LOW);
break;
case 3:
digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, HIGH);
digitalWrite(E_PIN, LOW);
digitalWrite(F_PIN, LOW);
digitalWrite(G_PIN, HIGH);
digitalWrite(DP_PIN, LOW);
break;
case 4:
digitalWrite(A_PIN, LOW);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, LOW);
digitalWrite(E_PIN, LOW);
digitalWrite(F_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
digitalWrite(DP_PIN, LOW);
break;
case 5:
digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, LOW);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, HIGH);
digitalWrite(E_PIN, LOW);
digitalWrite(F_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
digitalWrite(DP_PIN, LOW);
break;
case 6:
digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, LOW);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, HIGH);
digitalWrite(E_PIN, HIGH);
digitalWrite(F_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
digitalWrite(DP_PIN, LOW);
break;
case 7:
digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, LOW);
digitalWrite(E_PIN, LOW);
digitalWrite(F_PIN, LOW);
digitalWrite(G_PIN, LOW);
digitalWrite(DP_PIN, LOW);
break;
case 8:
digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, HIGH);
digitalWrite(E_PIN, HIGH);
digitalWrite(F_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
digitalWrite(DP_PIN, LOW);
break;
case 9:
digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, HIGH);
digitalWrite(E_PIN, LOW);
digitalWrite(F_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
digitalWrite(DP_PIN, LOW);
break;
default:
digitalWrite(A_PIN, LOW);
digitalWrite(B_PIN, LOW);
digitalWrite(C_PIN, LOW);
digitalWrite(D_PIN, LOW);
digitalWrite(E_PIN, LOW);
digitalWrite(F_PIN, LOW);
digitalWrite(G_PIN, LOW);
digitalWrite(DP_PIN, LOW);
break;
}
}
int main() {
// 初始化wiringPi库
if (wiringPiSetup() == -1) {
printf("wiringPi setup failed!\n");
return 1;
}
// 设置数码管引脚为输出模式
pinMode(A_PIN, OUTPUT);
pinMode(B_PIN, OUTPUT);
pinMode(C_PIN, OUTPUT);
pinMode(D_PIN, OUTPUT);
pinMode(E_PIN, OUTPUT);
pinMode(F_PIN, OUTPUT);
pinMode(G_PIN, OUTPUT);
pinMode(DP_PIN, OUTPUT);
// 显示数字20040319
display(2);
delay(1000);
display(0);
delay(1000);
display(0);
delay(1000);
display(4);
delay(1000);
display(0);
delay(1000);
display(3);
delay(1000);
display(1);
delay(1000);
display(9);
delay(1000);
return 0;
}
```