接口7段显示到8051gydF4y2Ba

七个段显示器用于指示数字信息。七段显示可以显示从0到9的数字,甚至可以显示A、b、C、H、E、E、F等几个字符。它们非常流行,有更多的应用。因此,在这个项目中,我将向您展示如何通过接口7段显示8051单片机7段显示工作。gydF4y2Ba

在开始这个概念之前,请了解亚博彩票下载gydF4y2Ba如何将led与8051单片机连接gydF4y2Ba。gydF4y2Ba

本文介绍了如何将AT89C51单片机与七段显示接口。系统将连续显示0 ~ 9的数字,并设置一定的延迟。在这个过程中,我将设计两个电路,一个是单位数7段显示,另一个是4位数7段显示。gydF4y2Ba

电路原理gydF4y2Ba

7段显示内部由8个led组成。在这些LED中,7个LED表示数字0到9,单个LED表示小数点。一般七段分为两种,一种是共阴极,另一种是共阳极。gydF4y2Ba

重要相关职位-gydF4y2Ba水位指示器工程完整文档gydF4y2Ba

在共同阴极中,所有led的阴极被绑在一起并标记为com。阳极就不动了。在共阳极中,七段显示,所有阳极系在一起,阴极自由留下。下图显示了七个显示段的内部连接。gydF4y2Ba

内部连接七段gydF4y2Ba
七个片段的内部连接gydF4y2Ba

在第一个电路中,我将接口一个公共阴极单数字7段显示到8051单片机,而在第二个电路中,我将接口一个公共阳极型4位7段显示到8051单片机。gydF4y2Ba

线路图gydF4y2Ba

电路1:将7段显示接口到8051 (Single Digit - CC)gydF4y2Ba

在第一个电路中,我用8051接口一个单数字7段显示。7段显示是普通阴极类型。gydF4y2Ba

7段显示与8051单数字电路接口gydF4y2Ba

电路2:将7段显示接口到8051(4位- CA)gydF4y2Ba

在第二个电路中,我将一个4位7段显示接口给8051单片机,显示类型为共阳极。gydF4y2Ba

接口7段显示8051 4位电路gydF4y2Ba

电路元件gydF4y2Ba

  • 采用AT89C51单片机gydF4y2Ba
  • AT89C51单片机编程板gydF4y2Ba
  • 编程电缆gydF4y2Ba
  • 12V直流电池或适配器gydF4y2Ba
  • 共阴极7段显示gydF4y2Ba
  • 共阳极4位7段显示gydF4y2Ba
  • 电阻- 10KΩ X 2, 330Ω, 1KΩ X 8, 470Ω X 4gydF4y2Ba
  • 1KΩ X 8电阻包gydF4y2Ba
  • 33pF陶瓷电容器x 2gydF4y2Ba
  • 11.0592 MHz的水晶gydF4y2Ba
  • 10μF电解电容器gydF4y2Ba
  • NPN晶体管X 4gydF4y2Ba
  • 按钮gydF4y2Ba
  • 连接电线gydF4y2Ba

请阅读这篇文章gydF4y2Ba(gydF4y2Ba8051单片机如何连接直流电机gydF4y2Ba吗?gydF4y2Ba]gydF4y2Ba

电路设计gydF4y2Ba

电路1gydF4y2Ba

这里使用共阴极七段来显示数字。在这个电路中,7段的引脚a到h连接到微控制器的port2和gydF4y2BacomgydF4y2Ba引脚通过330欧姆电阻连接到地。这个电阻器是用来降低电压的。因为我们使用共同的阴极7段,我们需要发送逻辑1的部分发光。gydF4y2Ba

图中为共阴极七段结构。这里用点表示小数点。这里所有LED的阴极都连接到Gnd引脚。这个LED的工作电压是2到3V,但是从控制器我们会得到5V,所以为了降低剩余的电压,我们必须通过电阻将a到g引脚连接到控制器。gydF4y2Ba

共阴极7段显示gydF4y2Ba
共阴极7段显示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
DpgydF4y2Ba
ggydF4y2Ba
fgydF4y2Ba
egydF4y2Ba
dgydF4y2Ba
cgydF4y2Ba
bgydF4y2Ba
一个gydF4y2Ba
十六进制值gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0 x3fgydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
0 x06gydF4y2Ba
2gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0 x5bgydF4y2Ba
3.gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0 x4fgydF4y2Ba
4gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
0 x66gydF4y2Ba
5gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
0 x6dgydF4y2Ba
6gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
0 x7dgydF4y2Ba
7gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0 x07gydF4y2Ba
8gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0 x7fgydF4y2Ba
9gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0gydF4y2Ba
0gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
1gydF4y2Ba
0 x67gydF4y2Ba

注意:gydF4y2Ba这些值仅适用于共同的阴极显示器。如果要驱动常见的阳极显示,那么您必须采取每个位的补充并替换代码中的十六进制值(我在第二电路代码中完成了)。gydF4y2Ba

算法gydF4y2Ba

电路1gydF4y2Ba

  1. 首先初始化数组中所有数字的十六进制段值。gydF4y2Ba

无符号字符arr [10] = {0 x3f, 0 x06 0 x5b 0 x4f, 0 x66 0 x6d 0 x7d 0 x07 0 x7f, 0 x67};gydF4y2Ba

  1. 现在接受for循环并将数组值赋给PORT2,并具有一定的时间延迟。gydF4y2Ba

(我= 0;< 10;我+ +)gydF4y2Ba

{gydF4y2Ba

P2 = arr[我];gydF4y2Ba

delay_ms (500);gydF4y2Ba

}gydF4y2Ba

电路2gydF4y2Ba

  1. 首先初始化数组中所有数字的十六进制段值。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 display(无符号长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

  1. 最初将程序烧到微控制器上gydF4y2Ba
  2. 请根据电路图给出连接方式gydF4y2Ba
  3. 确保7段a ~ g引脚分别连接第一电路的P2.0 ~ P2.6和第二电路的PORT0引脚。gydF4y2Ba
  4. 接通电源,可以观察到在第一个电路中0 ~ 9位数会有一定的延时连续显示,在第二个电路中4位7段显示器中0 ~ 9999位数会显示。gydF4y2Ba
  5. 电源开关。gydF4y2Ba

项目输出视频gydF4y2Ba

应用程序gydF4y2Ba

  • 七段数字时钟广泛用于显示时间。gydF4y2Ba
  • 这些在电子表中用于显示数字信息。gydF4y2Ba
  • 用于仪表面板gydF4y2Ba
  • 用于数字读出显示器。gydF4y2Ba

限制gydF4y2Ba

  • 显示大量信息会增加复杂性。gydF4y2Ba
  • 不可能显示7段上的符号。gydF4y2Ba

17的反应gydF4y2Ba

  1. 我想把上面的项目部分用于我的大四项目。gydF4y2Ba

    我需要得到上述项目的代码,以便了解如何在单片机中进行编程。亚博彩票下载并将其作为虚拟项目使用。gydF4y2Ba

    我正在使用7段显示显示的信息,我的客户。亚博彩票下载关于我的项目,我只能说这些。亚博彩票下载gydF4y2Ba

    希望能尽快拿到密码。gydF4y2Ba
    紧迫。gydF4y2Ba
    谢谢你!gydF4y2Ba

  2. # 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

  3. 我们做过这个如果你们有任何想法用开关控制七段显示还有一个要求是如果按下开关1蜂鸣器就亚博彩票下载会鸣叫一次如果按下开关2那么就会鸣叫两次gydF4y2Ba

  4. 这个视频对我来说是有帮助的,但是它并没有那么有用gydF4y2Ba
    给我解释一下4 - 7部分是如何同时工作的?gydF4y2Ba
    像显示666一样,我们需要给每个选择的线路控制信号,你将如何给控制信号4 7段显示?gydF4y2Ba
    请尽快回复,因为我正在以此为基础进行一个项目。gydF4y2Ba

留下一个回复gydF4y2Ba

您的电子邮件地址将不会被公布。gydF4y2Ba必填字段被标记gydF4y2Ba*gydF4y2Ba