4位数码管共阴极c语言代码如何改成共阳极c语言代码
时间: 2023-08-11 09:06:59 浏览: 100
如果你有一个 4 位数码管共阴极的 C 语言代码,要将它改成 4 位数码管共阳极的代码,你需要做以下几个步骤:
1. 将共阴极改成共阳极
共阴极的数码管是在数字显示时将某一位的引脚拉低(接地),这样这一位就会亮起来。而共阳极的数码管则是在数字显示时将某一位的引脚拉高(接电源),这样这一位就会亮起来。因此,你需要将原来的共阴极数码管改为共阳极数码管,即将原来连接到 GND 的引脚改为连接到 VCC。
2. 改变数码管的驱动方式
共阴极的数码管在显示数字时需要将某一位的引脚拉低,其他位的引脚保持高电平。而共阳极的数码管则需要将某一位的引脚拉高,其他位的引脚保持低电平。因此,你需要将原来的数码管驱动方式改为共阳极数码管的驱动方式。
下面是一个将 4 位数码管共阴极的 C 语言代码改为共阳极的示例:
```c
#include <stdio.h>
#include <wiringPi.h>
//定义每个数字的段码
const int SEGMENTS[10][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
};
//定义每个数码管的引脚
const int PINS[4][7] = {
{0, 1, 2, 3, 4, 5, 6}, // 第一位数码管
{7, 8, 9, 10, 11, 12, 13}, // 第二位数码管
{14, 15, 16, 17, 18, 19, 20}, // 第三位数码管
{21, 22, 23, 24, 25, 26, 27} // 第四位数码管
};
void setup() {
//初始化 GPIO 引脚
wiringPiSetup();
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 7; j++) {
pinMode(PINS[i][j], OUTPUT);
}
}
}
void loop() {
//显示 1234
showDigit(1, 2);
showDigit(2, 3);
showDigit(3, 4);
showDigit(4, 0);
}
void showDigit(int digit, int number) {
//设置每个数码管的段码
for (int i = 0; i < 7; i++) {
digitalWrite(PINS[digit - 1][i], !SEGMENTS[number][i]);
}
//设置要显示的数码管的引脚为高电平
digitalWrite(PINS[digit - 1][6], HIGH);
}
```
这个程序使用了树莓派的 GPIO 引脚和常见的共阳极数码管来实现。程序定义了每个数字的段码和每个数码管的引脚,然后通过循环设置每个数码管的段码来显示一个四位数。在 `loop()` 函数中,程序显示了数字 1234,你可以根据需要修改这个数字来显示其他的数字。在 `showDigit()` 函数中,程序设置要显示的数码管的引脚为高电平(原来是低电平),这样这一位就会亮起来。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)