七段显示器用来表示数字信息。七段显示器可以显示0到9的数字,甚至可以显示少量字符,如A、b、C、H、E、E、F等。它们非常流行,并且有更多的应用。所以,在这个项目中,我将向你展示7段显示如何通过接口7段显示gydF4y2Ba8051单片机gydF4y2Ba.gydF4y2Ba
在开始这个概念之前,先了解一下gydF4y2Ba如何接口led与8051微控制器gydF4y2Ba.gydF4y2Ba
本文介绍了如何将七段显示与AT89C51单片机接口。该系统以预定义的延迟连续显示从0到9的数字。在这个过程中,我将设计两个电路:一个电路是单位7段显示,另一个电路是4位显示gydF4y2Ba7段显示gydF4y2Ba.gydF4y2Ba
电路原理gydF4y2Ba
7段显示器内部由8个led组成。在这些LED中,7个LED用于表示数字0到9,单个LED用于表示小数点。一般七个段有两种类型,一种是公共阴极,另一种是公共阳极。gydF4y2Ba
〇重要相关职位gydF4y2Ba水位指示器项目完成文件gydF4y2Ba
在共同的阴极,所有的阴极led绑在一起,并标记为com。而阳极则保持原样。在共同阳极,七段显示所有的阳极绑在一起,阴极是自由留下。下图显示了7段显示器的内部连接。gydF4y2Ba
在第一个电路中,我将接口一个公共阴极单数字7段显示器到8051微控制器,而在第二个电路中,我将接口一个公共阳极类型4位数字7段显示器到8051微控制器。gydF4y2Ba
线路图gydF4y2Ba
电路1:将7段显示接口到8051(单个数字- CC)gydF4y2Ba
在第一个电路中,我将单个数字7段显示器与8051接口。7段显示器是普通的阴极类型。gydF4y2Ba
电路2:将7段显示接口到8051(4位- CA)gydF4y2Ba
在第二电路中,我将一个4位7段显示器接口到8051单片机,显示类型为公用阳极。gydF4y2Ba
电路元件gydF4y2Ba
- 采用AT89C51单片机gydF4y2Ba
- AT89C51单片机编程板gydF4y2Ba
- 编程电缆gydF4y2Ba
- 12V直流电池或适配器gydF4y2Ba
- 共阴极7段显示器gydF4y2Ba
- 普通阳极4位数字7段显示gydF4y2Ba
- 电阻- 10KΩ × 2, 330Ω, 1KΩ × 8, 470Ω × 4gydF4y2Ba
- 1KΩ x8电阻包gydF4y2Ba
- 33pF陶瓷电容器× 2gydF4y2Ba
- 11.0592 MHz的水晶gydF4y2Ba
- 10μF电解电容器gydF4y2Ba
- 2N2222 NPN晶体管X 4gydF4y2Ba
- 按钮gydF4y2Ba
- 连接电线gydF4y2Ba
也请阅读文章gydF4y2Ba[gydF4y2Ba如何将直流电机与8051单片机接口gydF4y2Ba?gydF4y2Ba]gydF4y2Ba
电路设计gydF4y2Ba
电路1gydF4y2Ba
这里用共阴极七段来显示数字。在该电路中,7段的引脚a到h连接到微控制器的PORT 2和gydF4y2BacomgydF4y2Ba引脚通过330欧姆电阻连接到地面。这个电阻是用来降低电压的。由于我们使用普通阴极7段,我们需要发送逻辑1段发光。gydF4y2Ba
图中显示共阴极七段的结构。这里的圆点是用来表示小数点的。这里LED的所有阴极都连接到Gnd引脚。这个LED的工作电压是2到3V,但从控制器我们将得到5V,所以要降低剩余的电压,我们必须通过电阻连接控制器a到g引脚。gydF4y2Ba
电路2gydF4y2Ba
由于在第二个电路中使用的4位7段显示器是普通阳极类型,我们需要通过公共端子驱动LED段。我用了4个NPN晶体管驱动4个普通阳极,晶体管由8051控制。gydF4y2Ba
接下来是a到h段,它们连接到8051的PORT0引脚。gydF4y2Ba
数字驱动模式gydF4y2Ba
为了在7个线段上显示数字,我们需要发光不同的线段逻辑组合。例如,如果你想在7段上显示数字3,那么你需要发光段a, b, c, d和g。下面的表格显示了我们需要从端口2发送的十六进制十进制值来显示从0到9的数字。gydF4y2Ba
|
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意:gydF4y2Ba这些值只适用于普通阴极显示器。如果你想驱动一个普通阳极显示器,那么你必须取每个位的补码并替换代码中的十六进制值(我已经在第二个电路的代码中做了)。gydF4y2Ba
算法gydF4y2Ba
电路1gydF4y2Ba
- 首先初始化数组中所有数字的段十六进制值。gydF4y2Ba
无符号字符arr [10] = {0 x3f, 0 x06 0 x5b 0 x4f, 0 x66 0 x6d 0 x7d 0 x07 0 x7f, 0 x67};gydF4y2Ba
- 现在使用for循环并将数组值赋给PORT2,并具有一定的时间延迟。gydF4y2Ba
(我= 0;< 10;我+ +)gydF4y2Ba
{gydF4y2Ba
P2 = arr[我];gydF4y2Ba
delay_ms (500);gydF4y2Ba
}gydF4y2Ba
电路2gydF4y2Ba
- 首先初始化数组中所有数字的段十六进制值。gydF4y2Ba
ugydF4y2Baxc0 nsigned char ch [] = {0, 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90}gydF4y2Ba
2.根据值,交换数字。gydF4y2Ba
无效显示(unsigned long int n)gydF4y2Ba
{gydF4y2Ba
领导= ch (n / 1000);gydF4y2Ba
sw1 = 1;gydF4y2Ba
sdelay (30);gydF4y2Ba
sw1 = 0;gydF4y2Ba
领导= ch ((n / 100) % 10);gydF4y2Ba
sw2 = 1;gydF4y2Ba
sdelay (30);gydF4y2Ba
sw2 = 0;gydF4y2Ba
领导= ch [(n / 10) % 10];gydF4y2Ba
sw3 = 1;gydF4y2Ba
sdelay (30);gydF4y2Ba
sw3 = 0;gydF4y2Ba
领导= ch (n % 10);gydF4y2Ba
sw4 = 1;gydF4y2Ba
sdelay (30);gydF4y2Ba
sw4 = 0;gydF4y2Ba
}gydF4y2Ba
代码gydF4y2Ba
电路1码(单位数)gydF4y2Ba
第一个电路的代码和仿真文件可以从这个链接下载:gydF4y2Ba下载项目代码gydF4y2Ba
电路2代码(4位)gydF4y2Ba
电路1仿真视频gydF4y2Ba
如何操作?gydF4y2Ba
- 先把程序烧到单片机上gydF4y2Ba
- 根据电路图给出连接方式gydF4y2Ba
- 确保7段a到g引脚分别接在第一电路的P2.0到P2.6和第二电路的PORT0引脚上。gydF4y2Ba
- 接通电源,可以看到数字0 ~ 9在第一电路中连续显示,有一定的延迟;数字0 ~ 9999在第二电路中显示4位7段显示。gydF4y2Ba
- 电源开关。gydF4y2Ba
项目输出视频gydF4y2Ba
应用程序gydF4y2Ba
- 数字时钟中广泛使用七段显示时间。gydF4y2Ba
- 这些是用于电子仪表显示数字信息。gydF4y2Ba
- 用于仪表板gydF4y2Ba
- 用于数字显示。gydF4y2Ba
限制gydF4y2Ba
- 为了显示较大的信息,增加了复杂性。gydF4y2Ba
- 它是不可能显示符号在7段。gydF4y2Ba
17的反应gydF4y2Ba
最好的网站。它为嵌入式系统提供了非常重要的信息。物品摆放整齐,电路图清晰。gydF4y2Ba
非常感谢您精彩的反馈。gydF4y2Ba
我想要4seng使用数字时钟编码,gydF4y2Ba
它是相同的双7 seg显示。它是5202BHG1-G 30gydF4y2Ba
能给我密码吗?gydF4y2Ba
我想把上面的项目部分用于我大学四年级的项目。gydF4y2Ba
我需要得到上述项目的代码,以便得到一个想法,如何去编程在微控制器。并将其用作虚拟项目。gydF4y2Ba
我使用七段显示显示信息关于我的客户。关于我的项目,我只能说这么多。gydF4y2Ba
希望能尽快拿到密码。gydF4y2Ba
紧迫。gydF4y2Ba
谢谢你!gydF4y2Ba
我想为我的第三年迷你项目设计同样的项目gydF4y2Ba
代码请gydF4y2Ba
# includegydF4y2Ba
void main ()gydF4y2Ba
{gydF4y2Ba
无符号字符赛格[10]= {0 x3f, 0 x06 0 x5b 0 x4f, 0 x66 0 x6d 0 x7d 0 x07 0 x7f, 0 x67};gydF4y2Ba
无符号字符x;gydF4y2Ba
unsigned int我;gydF4y2Ba
P1 = 0 x00;gydF4y2Ba
而(1)gydF4y2Ba
{gydF4y2Ba
(x = 0; x < 10; x + +)gydF4y2Ba
{gydF4y2Ba
P1 =赛格[x];gydF4y2Ba
(我= 0;< 45000;我+ +)gydF4y2Ba
{gydF4y2Ba
}gydF4y2Ba
}gydF4y2Ba
}gydF4y2Ba
}gydF4y2Ba
你确定这段代码吗??gydF4y2Ba
我们已经做过了,如果你们知道如何用开关控制7段显示器,还有一个要求是,如果开关1按下蜂鸣器会鸣叫一次,如果是2,就会鸣叫2次gydF4y2Ba
函数延迟用在哪里??gydF4y2Ba
它没有被使用。gydF4y2Ba
这个视频对我来说很有帮助,但对你来说没有多大用处gydF4y2Ba
请解释一下4 - 7部分是如何同时工作的?gydF4y2Ba
想要显示666,我们需要给每个选择线控制信号…你将如何给…控制信号到4 7段显示?gydF4y2Ba
尽快回复,因为我正在做一个基于此的项目。gydF4y2Ba
我想要加权刻度程序gydF4y2Ba
在这个项目中使用哪个模拟程序?gydF4y2Ba
普罗透斯gydF4y2Ba