一位 7 段 LED 显示屏
简单易做。
项目介绍
一位七段显示器用于许多嵌入式系统和工业应用,在这些应用中,要显示的输出范围是事先已知的。基本的 1 位 7 段显示可以显示 0-9 的数字和几个字符。7 段显示器具有不同的类型;特别是它们在可以显示的位数/字符数上有所不同。基本上,7段显示器是一个单元,只能显示1位数字或1个字符。通过将单个单元7段显示多路复用来显示更多数字,形成2位显示,3位显示或4位7段显示。它安静、易于连接Arduino和7段显示!让我们开始本教程。
7 段显示器有许多限制,尤其是在它可以显示的字符范围方面。市场上的显示器比七段显示器先进得多,几乎可以显示字母表中的每个字符。例如:- 一个 16×2 LCD – 可以显示几乎所有 ASCII 字符。您可能会想为什么市场上仍然存在 7 段显示器。好吧,当涉及到市场上可用的显示设备时,7段显示器是最便宜的选择。一位数字/字符的 7 段显示单元的成本是 16×2 LCD 模块的 1/10。
显示器中的每个 LED 都有一个位置段,其中一个连接引脚从矩形塑料封装中引出。这些 LED 引脚从“a”到“g”标记为代表每个单独的 LED。其他 LED 引脚连接在一起,形成一个公共引脚。因此,通过按特定顺序对 LED 段的适当引脚进行正向偏置,某些段将变亮,而其他段将保持变暗,从而在显示屏上显示相应的字符。
显示器的公共引脚通常告诉其类型。引脚连接有两种类型:连接阴极的引脚和连接阳极的引脚,表示共阴极 (CC) 和共阳极 (CA)。顾名思义,当 CA 显示器连接了 7 段的所有阳极时,CC 显示器连接了 7 个 LED 的所有阴极。
代码
int a=7;
int b=6;
int c=5;
int d=11;
int e=10;
int
f=8;
int g=9;
int dp=4;
//display number 1
void display1(void)
{
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
}
//display number2
void
display2(void)
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(g,HIGH);
digitalWrite(e,HIGH);
digitalWrite(d,HIGH);
}
// display number3
void display3(void)
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(g,HIGH);
}
// display number4
void display4(void)
{
digitalWrite(f,HIGH);
digitalWrite(b,HIGH);
digitalWrite(g,HIGH);
digitalWrite(c,HIGH);
}
// display number5
void display5(void)
{
digitalWrite(a,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
}
// display number6
void
display6(void)
{
digitalWrite(a,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
}
// display number7
void display7(void)
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
}
// display number8
void display8(void)
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(g,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
}
void clearDisplay(void)
{
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(g,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
}
void display9(void)
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(g,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(f,HIGH);
}
void display0(void)
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
}
void setup()
{
int i;
for(i=4;i<=11;i++)
pinMode(i,OUTPUT);
}
void loop()
{
while(1)
{ clearDisplay();
display0();
delay(2000);
clearDisplay();
display1();
delay(2000);
clearDisplay();
display2();
delay(2000);
clearDisplay();
display3();
delay(2000);
clearDisplay();
display4();
delay(2000);
clearDisplay();
display5();
delay(2000);
clearDisplay();
display6();
delay(2000);
clearDisplay();
display7();
delay(2000);
clearDisplay();
display8();
delay(2000);
clearDisplay();
display9();
delay(2000);
}
}