动态数码管显示 c语言代码
时间: 2023-06-14 15:08:29 浏览: 118
下面是一个简单的动态数码管显示的C语言代码:
```c
#include <stdio.h>
#include <wiringPi.h> //需要安装WiringPi库
int seg[10][7] = {{1, 1, 1, 1, 1, 1, 0}, //数字0的7段数码管编码
{0, 1, 1, 0, 0, 0, 0}, //数字1的7段数码管编码
{1, 1, 0, 1, 1, 0, 1}, //数字2的7段数码管编码
{1, 1, 1, 1, 0, 0, 1}, //数字3的7段数码管编码
{0, 1, 1, 0, 0, 1, 1}, //数字4的7段数码管编码
{1, 0, 1, 1, 0, 1, 1}, //数字5的7段数码管编码
{1, 0, 1, 1, 1, 1, 1}, //数字6的7段数码管编码
{1, 1, 1, 0, 0, 0, 0}, //数字7的7段数码管编码
{1, 1, 1, 1, 1, 1, 1}, //数字8的7段数码管编码
{1, 1, 1, 1, 0, 1, 1}};//数字9的7段数码管编码
int main()
{
wiringPiSetup(); //初始化WiringPi库
int pins[7] = {4, 0, 2, 3, 21, 22, 23}; //7段数码管的引脚,需要根据实际接线修改
int num = 0; //要显示的数字
pinMode(pins[0], OUTPUT);
pinMode(pins[1], OUTPUT);
pinMode(pins[2], OUTPUT);
pinMode(pins[3], OUTPUT);
pinMode(pins[4], OUTPUT);
pinMode(pins[5], OUTPUT);
pinMode(pins[6], OUTPUT);
while(1)
{
int i;
for(i = 0; i < 7; i++)
{
digitalWrite(pins[i], seg[num][i]); //设置每个引脚的输出电平
}
num = (num + 1) % 10; //每次显示下一个数字
delay(1000); //延时1秒
}
return 0;
}
```
代码中使用了wiringPi库来控制树莓派上的GPIO引脚输出,需要在编译前安装这个库。代码中定义了一个二维数组seg,存储了0~9这10个数字在7段数码管上的编码,通过循环依次输出每个数字的编码,就可以实现动态显示了。
阅读全文