七段显示译码器代码
时间: 2023-07-02 12:19:59 浏览: 116
以下是常见的七段显示译码器代码,使用的是常见的共阳极七段显示器:
```C
//定义7段数码管COM口连接的芯片引脚
#define DIG_COM1 2
#define DIG_COM2 3
#define DIG_COM3 4
#define DIG_COM4 5
//定义7段数码管A~G连接的芯片引脚
#define SEG_A 6
#define SEG_B 7
#define SEG_C 8
#define SEG_D 9
#define SEG_E 10
#define SEG_F 11
#define SEG_G 12
//定义数码管编码表
//共阳极七段显示器编码表
//0~9
const unsigned char SEG_NUM[] =
{
0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F
};
//A~F
const unsigned char SEG_ALP[] =
{
0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71
};
//定义函数:数码管显示
void dispNum(unsigned char num, unsigned char point)
{
static unsigned char dig = 1;
//关闭所有数码管
digitalWrite(DIG_COM1, HIGH);
digitalWrite(DIG_COM2, HIGH);
digitalWrite(DIG_COM3, HIGH);
digitalWrite(DIG_COM4, HIGH);
//设置显示数字
switch (dig)
{
case 1:
digitalWrite(DIG_COM1, LOW);
break;
case 2:
digitalWrite(DIG_COM2, LOW);
break;
case 3:
digitalWrite(DIG_COM3, LOW);
break;
case 4:
digitalWrite(DIG_COM4, LOW);
break;
default:
break;
}
//显示数字
if (num <= 9)
{
//显示数字0~9
PORTB = SEG_NUM[num] | (point << 7);
}
else if (num >= 'A' && num <= 'F')
{
//显示字母A~F
PORTB = SEG_ALP[num - 'A'] | (point << 7);
}
else
{
//显示其他字符
PORTB = 0x00 | (point << 7);
}
//更新数码管
dig++;
if (dig > 4)
{
dig = 1;
}
}
```
这段代码演示了如何使用 Arduino 控制七段显示器,其中定义了数码管 COM 口和 A~G 口的连接引脚,以及显示数字和字母的编码表。函数 `dispNum()` 可以根据输入的数字或字母,在数码管上实现显示。
阅读全文