显示是任何嵌入式系统应用程序中非常重要的部分,因为它可以帮助用户了解系统的状态,并显示输出或系统生成的任何警告消息。电子产品中有许多类型的显示器,例如7段显示器,LCD显示器,TFT触摸屏显示器,LED显示器等。
在先前的教程中,我们已经将16x2 LCD与ARM7-LPC2148连接。今天,在本教程中,我们将使用7段显示器与ARM7-LPC2148进行接口。在详细介绍之前,我们将了解如何控制7段模块以显示任意数量的字符。
7段显示
7段显示 是最简单的显示数字和字符的显示单元。它通常用于显示数字,并且比点矩阵显示具有更亮的照明和更简单的构造。而且由于照明更亮,因此可以从比LCD更大的距离观看输出。如上图所示的7段显示器,它由8个LED组成,每个LED用来照亮一个单元的一部分,而8thLED用来照亮7段显示器中的DOT。当使用两个或多个7段模块(例如显示(0.1))时,将使用8thLED。单个模块用于显示单个数字或字符。要显示多个数字或字符,请使用多个7段。
7段显示器的引脚
有10个引脚,其中8个引脚用于表示a,b,c,d,e,f,g和h / dp,两个中间引脚是所有LED的公共阳极/阴极。这些公共阳极/阴极在内部短路,因此我们仅需连接一个COM引脚
根据连接的不同,我们将7段分为两种类型:
普通阴极
这样,所有8个LED的所有负极端子(阴极)都连接在一起(见下图),称为COM。并且所有正极端子都保持不变或连接到微控制器引脚。如果使用微控制器,则将逻辑设置为高电平来点亮特定的灯,并设置为低电平以关闭LED。
共同阳极
在此,所有8个LED的所有正极端子(阳极)都连接在一起,称为COM。并且所有负热都可以保留下来或连接至微控制器引脚。如果使用微控制器,则将逻辑低设置为高亮,将逻辑高设置为关闭LED。
因此,根据引脚值,可以打开或关闭特定的段或7段线以显示所需的数字或字母。例如,要显示0位数,我们必须将ABCDEF引脚设置为HIGH,仅将G设置为LOW。由于ABCDEF LED点亮且G熄灭,这在7段模块中形成了0数字。(这是对于公共阴极,对于公共阳极是相反的)。
下表显示了用于共阴极配置的,根据LPC2148引脚 的十六进制值和相应的数字。
数字 |
LPC2148的十六进制值 |
一种 |
乙 |
C |
d |
Ë |
F |
G |
0 |
0xF3 |
1个 |
1个 |
1个 |
1个 |
1个 |
1个 |
0 |
1个 |
0x12 |
0 |
1个 |
1个 |
0 |
0 |
0 |
0 |
2 |
0x163 |
1个 |
1个 |
0 |
1个 |
1个 |
0 |
1个 |
3 |
0x133 |
1个 |
1个 |
1个 |
1个 |
0 |
0 |
1个 |
4 |
0x192 |
0 |
1个 |
1个 |
0 |
0 |
1个 |
1个 |
5 |
0x1B1 |
1个 |
0 |
1个 |
1个 |
0 |
1个 |
1个 |
6 |
0x1F1 |
1个 |
0 |
1个 |
1个 |
1个 |
1个 |
1个 |
7 |
0x13 |
1个 |
1个 |
1个 |
0 |
0 |
1个 |
0 |
8 |
0x1F3 |
1个 |
1个 |
1个 |
1个 |
1个 |
1个 |
1个 |
9 |
0x1B3 |
1个 |
1个 |
1个 |
1个 |
0 |
1个 |
1个 |
重要信息: 在上表中,我已根据我在LPC2148中使用的引脚给出了十六进制值,请检查以下电路图。您可以使用任何所需的引脚,但可以根据需要更改十六进制值。
要了解有关7段显示的更多信息,请通过链接。还要检查与其他微控制器的7段显示器接口:
- 与Raspberry Pi的7段显示器接口
- 与PIC单片机的7段显示器接口
- 与Arduino的7段显示器接口
- 与8051单片机的7段显示器接口
- 使用AVR微控制器的0-99计数器
所需材料
硬件
- ARM7-LPC2148
- 七段显示模块(单位数)
- 面包板
- 连接线
软件
- Keil uVision5
- 闪光魔术
电路原理图
要将7段与LPC2148连接,不需要外部组件,如下电路图所示:
下表显示了7段模块和LPC2148之间的电路连接
七段模块引脚 |
LPC2148引脚 |
一种 |
P0.0 |
乙 |
P0.1 |
C |
P0.4 |
d |
P0.5 |
Ë |
P0.6 |
F |
P0.7 |
G |
P0.8 |
共同 |
地线 |
编程ARM7 LPC2148
在上一教程中,我们已经学习了如何使用Keil对ARM7-LPC2148进行编程。我们在这里使用相同的Keil uVision 5编写代码并创建十六进制文件,然后使用Flash Magic工具将十六进制文件上传到LPC2148。我们正在使用USB电缆来供电并将代码上传到LPC2148
本教程的结尾给出了带有视频说明的完整代码。在这里,我们解释了代码的几个重要部分。
首先,我们需要包含LPC214x系列微控制器的头文件
#包括
接下来将引脚设置为输出
IO0DIR = IO0DIR-0xffffffff
这会将引脚P0.0设置为P0.31,但是我们将仅使用引脚(P0.0,P0.1,P0.4,P0.5,P0.6,P0.7和P0.8) 。
然后根据要显示的数字将某些引脚设置为LOGIC HIGH或LOW。在这里,我们将显示(0到9)之间的值。我们将使用包含0到9值的十六进制值的数组。
unsigned int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
当代码已放入 while 循环中 时, 值将连续显示
while(1) { for(i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; //将对应的引脚设置为HIGH delay(9000); //调用延迟函数 IO0CLR = IO0CLR-a; //将对应的引脚设置为LOW } }
这里 IOSET 和 IOCLR 用于设置引脚分别为高和低。因为我们使用了PORT0引脚,所以我们有了 IO0SET 和 IO0CLR 。
For 循环用于在每次迭代中递增 i ,并且每次 i 递增时,7段也会递增其上显示的数字。
延迟 功能用于生成SET和CLR之间的延迟时间
void delay(int k)//产生延迟的函数 { int i,j; 对于(i = 0; i
完整的代码和有效的视频描述如下。还要在此处检查所有与7段显示器相关的项目。