七段式显示器是电子产品中的重要显示单元,广泛用于显示0到9之间的数字。它还可以显示一些字符字母,例如A,B,C,H,F,E等。在本教程中,我们将学习如何将7段显示器与8051微控制器连接。我们正在使用8051系列的AT89S52微控制器。
在进行接口连接之前,我们应该了解7段显示。它是显示数字和字符的最简单的单位。它仅由8个LED组成,每个LED用来点亮一个单元的一部分,而第8个LED用来照亮7段显示器中的DOT。我们可以将每个段称为LINE,因为我们可以看到该单元中有7行用于显示数字/字符。我们可以将每行/段称为“ a,b,c,d,e,f,g”,对于点字符,我们将使用“ h”。有10个引脚,其中8个引脚用于表示a,b,c,d,e,f,g和h / dp,两个中间引脚是所有LED的公共阳极/阴极。这些公共阳极/阴极在内部短路,因此我们只需要连接一个COM引脚即可。
7段显示器有两种类型:共阳极和共阴极:
公共阳极:在此,所有8个LED的所有负极端子(阴极)都连接在一起(请参见下图),命名为COM。并且所有正极端子均不使用。
共阴极:在此,所有8个LED的所有正极(阳极)都连接在一起,称为COM。并且所有负热效应都被忽略了。
电路图和工作原理
在这里,我们使用7段的普通阳极类型,因为我们需要反向连接LED。众所周知,微控制器无法提供足够的功率来使LED发光,因此我们需要将LED的阴极连接至微控制器引脚,并将LED的阳极连接至电源。您可以在本文“与8051微控制器进行LED接口连接”中了解这种负逻辑概念。您还应该阅读这篇文章,以了解微控制器的基本连接,例如晶振和复位电路。
如上图所示,用于将7段显示器与8051微控制器接口的电路图,我们已将a,b,c,d,e,f,g,h连接至引脚2.0至2.7,这意味着我们将7段连接至微控制器的端口2。现在假设我们要显示0,那么我们需要使所有LED发光,除了属于“ g”线的LED(请参见上图),因此引脚2.0到2.6应该为0(应为0来打开LED,每个负逻辑)和引脚2.7和2.8应该为1(应为1以按照负逻辑关闭LED)。因此,连接到引脚2.0至2.6(a,b,c,d,e,f)的LED将点亮,连接到2.7和2.8(g和h)的LED将熄灭,这将在7中创建一个“ 0”分割。因此,我们需要位模式11000000(引脚8是最高位,因此从P2.7到P2.0),二进制11000000的十六进制代码为“ C0”。同样,我们可以计算所有数字。在这里我们应该注意,我们始终保持“点/小时”为关闭状态,因此,我们每次都需要为其赋予LOGIC“ 1”。下表列出了使用Common Anode 7分段时的所有数字。
显示位数 |
hgfedcba |
十六进制代码 |
0 |
11000000 |
C0 |
1个 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
代码说明
我们创建了ms_delay函数来提供延迟(以毫秒为单位),该延迟通常在任何微控制器程序中提供,以便微控制器可以完成其内部操作。
然后,我们创建了一个0到9的十六进制代码数组(请参见上表),最后将十六进制代码发送到端口2,该端口2连接到公共阳极7段。因此,数字将显示在7段显示屏上。
现在,我们的微控制器中只有4个端口,如果要在四个以上的7个段中显示数据该怎么办?为了解决这个问题,多路技术进入画面。我们需要多路复用多个7段单元。还要阅读与AVR微控制器接口的7段显示器。