新闻中心

EEPW首页 > 嵌入式系统 > 市场分析 > 将7段显示连接到8051

将7段显示连接到8051

作者:时间:2023-04-14来源:电子产品世界收藏

七段显示器是用来显示数字信息的。七段显示器可以显示从0到9的数字,甚至我们可以显示一些字符,如A, b, C, H, E, e, F等。这些都是非常流行的,并且有很多的应用。因此,在这个项目中,我将向你展示一个是如何通过连接来工作的。

本文引用地址:http://www.eepw.com.cn/article/202304/445604.htm

在开始这个概念之前,先了解一下如何将LED与连接。

这篇文章描述了如何将七段显示器连接到AT89C51。这个系统以预定的延迟连续显示从0到9的数字。在这个过程中,我将设计两个电路:一个是单数7段显示的电路,另一个是由4位7段显示的电路。 

电路原理

七段显示器内部由8个LED组成。在这些LED中,7个LED用于指示数字0至9,一个LED用于指示小数点。一般来说,七段显示有两种类型,一种是共阴极,另一种是共阳极。

在共阴极情况下,所有LED的阴极被绑在一起,并被标记为com.而阳极则被单独留下。在共阳极情况下,七段显示器的所有阳极被绑在一起,阴极则被自由放置。下图显示了七段式显示器的内部连接。

Internal connections of seven segment

七段式显示器的内部连接

在第一个电路中,我将把共阴极单数七段显示器连接到,而在第二个电路中,我将把共阳极型四位七段显示器连接到8051

电路图

电路1:将连接到8051(单数 - CC)。

在第一个电路中,我将一个单数7段显示器与8051连接起来。7段显示器是共阴极类型的。

Interfacing 7 Segment Display to 8051 Single Digit Circuit

7段显示器与8051单数电路的连接

电路2:7段显示器与8051的接口(4位数 - CA)。

在第二个电路中,我将一个4位的7段显示器连接到8051,显示类型为共阳极。

Interfacing 7 Segment Display to 8051 4-Digit Circuit

7段显示器与8051 4位数电路的连接

电路元件

AT89C51单片机

AT89C51编程板

编程电缆

12V直流电池或适配器

共阴极7段显示器

共阳极4位7段显示器

电阻器 - 10KΩ X 2, 330Ω, 1KΩ X 8, 470Ω X 4

1KΩ X 8 电阻器包 

33pF 陶瓷电容 X 2 

11.0592 MHz晶体

10μF 电解电容

2N2222 NPN 晶体管 X 4

按钮

连接线

电路设计

电路1

在这里,共阴极七段被用来显示数字。在这个电路中,7段的a至h脚与微控制器的2号端口相连,com脚通过330欧姆的电阻与地相连。这个电阻是用来降低电压的。由于我们使用的是共阴极七段,我们需要发送LOGIC 1到各段,使其发光。

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

Common cathode 7 segment Display

共阴极7段显示器

电路2

由于第二个电路中使用的4位7段显示器是共阳极类型的,我们需要通过公共终端来驱动LED段。我使用了4个NPN晶体管来驱动这4个共阳极,晶体管由8051控制。

对于a至h段,它们被连接到8051的PORT0引脚。

数字驱动模式

为了在7段上显示数字,我们需要在各段上显示不同的逻辑组合。例如,如果你想在7段上显示数字3,那么你需要在a、b、c、d和g段上发光。下面的表格显示了我们需要从PORT2发送的十六进制十进制数值,以显示0到9的数字。

1681440913467909.png

注意:这些值只适用于共阴极显示器。如果你想驱动共阳极显示器,那么你必须取每一位的补码,并替换代码中的十六进制值(我已经在第二个电路的代码中做了)。

算法

对于电路1

首先,在一个数组中初始化所有段位的十六进制值。

unsigned char arr[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};

现在进行for循环,将数组值分配给PORT2,并有一定的时间延迟。

for (i=0;i<10;i++)


                        {


                                    P2=arr[i];


                                    delay_ms(500);


                        }

对于电路2

首先在一个数组中初始化所有段位的十六进制值。

unsigned char ch[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}

2. 根据数值,切换数字。


void display (unsigned long int n)


      {


          led=ch[n/1000];


          sw1=1;


          sdelay(30);


          sw1=0;


          led=ch[(n/100)%10];


          sw2=1;


          sdelay(30);


          sw2=0;


          led=ch[(n/10)%10];


          sw3=1;



          sdelay(30);


          sw3=0;


          led=ch[n%10];


          sw4=1;


          sdelay(30);


          sw4=0;


     }

如何操作?

首先将程序刻录到单片机上

按照电路图的要求进行连接

 确保7段的a至g引脚分别连接到第一个电路的P2.0至P2.6和第二个电路的PORT0引脚。

打开电源,你可以观察到在第一个电路中,数字0到9将连续显示,并有一定的延迟,在第二个电路中,数字0到9999将显示在4位7段显示器上。

切换电源。

应用

七段显示器被广泛用于数字钟中,以显示时间。

在电子仪表中用于显示数字信息。

用在仪表盘中

用于数字读出显示器。

局限性

为了显示大的信息,复杂性增加。

不可能在七段上显示符号。



评论


相关推荐

技术专区

关闭