用c语言写一个控制数码管显示的程序
时间: 2023-04-07 15:05:32 浏览: 75
我可以回答这个问题。以下是一个简单的用C语言编写的控制数码管显示的程序:
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
int main(void) {
int i;
int pin[8] = {0, 1, 2, 3, 4, 5, 6, 7}; // 数码管引脚
int num[10][8] = { // 数字对应的引脚状态
{1, 1, 1, 1, 1, 1, 0, 0}, // 0
{0, 1, 1, 0, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1, 0}, // 2
{1, 1, 1, 1, 0, 0, 1, 0}, // 3
{0, 1, 1, 0, 0, 1, 1, 0}, // 4
{1, 0, 1, 1, 0, 1, 1, 0}, // 5
{1, 0, 1, 1, 1, 1, 1, 0}, // 6
{1, 1, 1, 0, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1, 0}, // 8
{1, 1, 1, 1, 0, 1, 1, 0} // 9
};
if (wiringPiSetup() == -1) { // 初始化wiringPi库
printf("wiringPi setup failed!\n");
return 1;
}
for (i = 0; i < 8; i++) {
pinMode(pin[i], OUTPUT); // 设置引脚为输出模式
}
while (1) { // 循环显示数字0~9
for (i = 0; i < 10; i++) {
digitalWrite(pin[0], num[i][0]);
digitalWrite(pin[1], num[i][1]);
digitalWrite(pin[2], num[i][2]);
digitalWrite(pin[3], num[i][3]);
digitalWrite(pin[4], num[i][4]);
digitalWrite(pin[5], num[i][5]);
digitalWrite(pin[6], num[i][6]);
digitalWrite(pin[7], num[i][7]);
delay(1000); // 延时1秒
}
}
return 0;
}