七段显示器用于显示数字信息。七段显示器可以显示从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。阳极就不受影响了。在共阳极,七段显示所有的阳极绑在一起,阴极自由留下。下图为七段显示器的内部连接。gydF4y2Ba
在第一个电路中,我将接口共阴极单位数7段显示器到8051微控制器,而在第二个电路中,我将接口共阳极型4位数7段显示器到8051微控制器。gydF4y2Ba
线路图gydF4y2Ba
电路1:接口7段显示器到8051(单数字- CC)gydF4y2Ba
在第一个电路,我是接口一个单数字7段显示8051。七段显示器是常见的阴极式显示器。gydF4y2Ba
电路2:接口7段显示器到8051(4位CA)gydF4y2Ba
在第二个电路中,我在8051单片机上接口了一个4位7段显示器,显示类型为共阳极。gydF4y2Ba
电路元件gydF4y2Ba
- 采用AT89C51单片机gydF4y2Ba
- AT89C51单片机编程板gydF4y2Ba
- 编程电缆gydF4y2Ba
- 12V直流电池或适配器gydF4y2Ba
- 共阴极7段显示器gydF4y2Ba
- 共阳极4位7段显示器gydF4y2Ba
- 电阻- 10KΩ x2, 330Ω, 1KΩ X 8, 470Ω X 4gydF4y2Ba
- 1KΩ X 8电阻包gydF4y2Ba
- 33pF陶瓷电容器× 2gydF4y2Ba
- 11.0592 MHz的水晶gydF4y2Ba
- 10μF电解电容器gydF4y2Ba
- NPN晶体管XgydF4y2Ba
- 按钮gydF4y2Ba
- 连接电线gydF4y2Ba
也请阅读帖子-gydF4y2Ba[gydF4y2Ba如何实现直流电动机与8051单片机的接口gydF4y2Ba?gydF4y2Ba]gydF4y2Ba
电路设计gydF4y2Ba
电路1gydF4y2Ba
这里用共阴极七段来显示数字。在这个电路中,7段的引脚a到h连接到微控制器的PORT 2和gydF4y2BacomgydF4y2Ba引脚通过330欧姆的电阻连接到地面。这个电阻是用来降低电压的。由于我们正在使用共阴极七段,我们需要发送LOGIC 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。下表向您展示了我们需要从PORT2发送的十六进制十进制值,以显示从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
Void显示(无符号长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
电路仿真视频1gydF4y2Ba
如何操作?gydF4y2Ba
- 最初将程序刻录到微控制器中gydF4y2Ba
- 按电路图给出连接方法gydF4y2Ba
- 确保7段的a ~ g引脚分别连接到第1路的P2.0 ~ P2.6和第2路的PORT0引脚上。gydF4y2Ba
- 打开电源,可以观察到数字0到9在第一个电路中连续显示,有一定的延迟,数字0到9999在第二个电路中显示为4位7段显示器。gydF4y2Ba
- 电源开关。gydF4y2Ba
项目输出视频gydF4y2Ba
应用程序gydF4y2Ba
- 七段时间在数字时钟中被广泛使用来显示时间。gydF4y2Ba
- 它们用于电子仪表中显示数值信息。gydF4y2Ba
- 用于仪表板gydF4y2Ba
- 用于数字读数显示器。gydF4y2Ba
限制gydF4y2Ba
- 为了显示大的信息,复杂度增加了。gydF4y2Ba
- 不能在七段上显示符号。gydF4y2Ba
17的反应gydF4y2Ba
最好的网站。它提供了关于嵌入式系统的非常重要的信息。物品摆放整齐,电路图干净。gydF4y2Ba
非常感谢您的精彩反馈。gydF4y2Ba
我想用数字clk编码,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
我们有这样做如果你人知道七段显示控制开关和一个要求是如果开关一按蜂鸣器蜂鸣一次如果2然后2次gydF4y2Ba
函数延迟用在哪里??gydF4y2Ba
它没有被使用。gydF4y2Ba
这个视频对我来说很有帮助,但它并不是很有用gydF4y2Ba
给我解释一下,这4个7段是如何同时工作的?gydF4y2Ba
像显示666,我们需要给每个选择线的控制信号,你将如何给控制信号到4 7段显示?gydF4y2Ba
尽快回复,因为我正在做一个基于此的项目。gydF4y2Ba
我想称重秤程序gydF4y2Ba
在这个项目中使用了哪个仿真程序?gydF4y2Ba
普罗透斯gydF4y2Ba