首页 > 光电技术实用电路 >光电显示电路 > 用ARM7-LPC2148连接7段显示器的教程

用ARM7-LPC2148连接7段显示器的教程

来源:互联网发布者:aerobotics 关键词: 显示器 arm LPC2148 更新时间: 2024/02/05

显示是任何嵌入式系统应用程序中非常重要的一部分,因为它可以帮助用户了解系统的状态,并显示系统生成的输出或任何警告消息。电子产品中使用的显示器类型很多,如7段显示器,LCD显示器,TFT触摸屏显示器,LED显示器等。

今天在本教程中,我们将用ARM7-LPC2148连接7段显示器。在详细介绍之前,我们将了解如何控制7段模块以显示任意数量的字符。

7段显示器

7段显示器

7段显示是显示数字和字符的最简单的显示单元之一。它通常用于显示数字,并且比点阵显示具有更亮的照明和更简单的结构。由于照明更亮,因此可以从比LCD更大的距离观看输出。如上图所示的7段显示器,它由8个LED组成,每个LED用于照亮单元的一个段,第8个LED用于照亮7段显示器中的DOT。当使用两个或多个 7 段模块时,例如用于显示 (0.1),则使用 8thLED。单个模块用于显示单个数字或字符。要显示多个数字或字符,请使用多个 7 段。

7段显示器的引脚

有10个引脚,其中8个引脚用于表示a,b,c,d,e,f,g和h / dp,中间两个引脚是所有LED的公共阳极/阴极。这些公共阳极/阴极在内部短路,因此我们只需要连接一个COM引脚

7段显示器的引脚

根据连接,我们将 7 段分为两种类型:

共阴极

其中,所有8个LED的所有负端子(阴极)都连接在一起(见下图),命名为COM。所有正极均单独放置或连接到微控制器引脚。如果我们使用微控制器,我们将逻辑设置为高电平以照亮特定内容,并将低电平设置为关闭LED。

普通阳极

其中,所有8个LED的所有正极(阳极)都连接在一起,称为COM。所有负热量都单独放置或连接到微控制器引脚。如果我们使用微控制器,我们将逻辑设置为低电平以照亮特定,并将逻辑设置为高以关闭LED。

因此,根据引脚值,可以打开或关闭特定的段或7段的行以显示所需的数字或字母。例如,要显示 0 位数字,我们必须将引脚ABCDEF 设置为高电平,仅将 G 设置为低电平。由于ABCDEF 指示灯亮起,G 指示灯熄灭,因此在 7 段模块中形成 0 位数字。(这是针对共阴极的,对于公共阳极,它是相反的)。

下表显示了根据LPC2148引脚的HEX值和相应数字,用于共阴极配置。

根据LPC2148引脚的HEX值和相应数字

重要提示:在上表中,我根据LPC2148中使用的引脚给出了十六进制值,请查看下面的电路图。您可以使用所需的任何引脚,但会根据该引脚更改十六进制值。

所需材料

硬件

断续器2148

七段显示模块(个位数)

试验板

连接线

软件

凯尔乌维森5

闪光魔术

电路图

为了将7段与LPC2148连接,无需外部元件,如下图所示:

将7段与LPC2148连接

下表显示了7段模块和LPC2148之间的电路连接

将7段与LPC2148连接

将7段与LPC2148连接

对 ARM7 LPC2148 进行编程

在上一教程中,我们已经学会了如何使用 Keil 对 ARM7-LPC2148 进行编程。我们在这里使用相同的Keil uVision 5来编写代码并创建十六进制文件,然后使用闪存魔术工具将十六进制文件上传到LPC2148。我们使用USB电缆供电并将代码上传到LPC2148

本教程末尾给出了带有视频说明的完整代码。在这里,我们解释代码的几个重要部分。

首先,我们需要包含LPC214x系列微控制器的头文件

#include

接下来将引脚设置为输出

IO0DIR=IO0DIR|0xffffffff

这会将引脚 P0.0 设置为 P0.31 作为输出,但我们将仅使用引脚(P0.0、P0.1、P0.4、P0.5、P0.6、P0.7 和 P0.8)。

然后根据要显示的数字将某些引脚设置为逻辑高电平或低电平。在这里,我们将显示从(0到9)的值。我们将使用一个数组,该数组由值 0 到 9 的 HEX 值组成。

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[i];      //sets corresponding pins HIGH

delay(9000);         //Calls delay function

IO0CLR=IO0CLR|a[i];      //Sets corresponding pins LOW

}

}

在这里,IOSET和IOCRR分别用于设置引脚高电平和低电平。由于我们使用了端口0引脚,因此我们有IO0SET和IO0CLR。

For loop用于在每次迭代中增加i,每次当i增加时,7段也会增加其上显示的数字。

延迟函数用于在 SET 和 CLR 之间生成延迟时间

void delay(int k)       //Function for making delay

{

int i,j;

for(i=0;i

for(j=0;j<=1000;j++);

}
完整代码

//INTERFACING SINGLE SEVEN SEGMENT MODULE WITH LPC2148

//CIRCUIT DIGEST

//By Pramoth.T


#include

提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2024-11-13 08:48

千兆网口调试程序
本人用FPGA+MAC+PHY芯片做了千兆网传输模块,请问FPGA程序写好后要测试时,用什么程序去发送接收数据? 千兆网口调试程序 这个 问题太复杂了。具体要看你的系统。涉及到系统测试问题了 速度要求不高的时候,用wireshark就够了 如果包长在1514字节,wiresh
 wanglei0307FPGA/CPLD
传感器:与IC趋于集成MEMS遍及高端
汽车电子控制系统的“正常运转”离不开传感器的保驾护航,通过传感器可将各种诸如压力、流量、位置、高度、距离、速度、转速、温度等信号传递到动力系统、安全系统等控制单元,达到汽车正常驾驶的目的。正因为需要各种不同的信号,因而汽车传感器种类繁多,目前一辆普通家用轿车上约安装几十到近百只
 传感器
EDMA3--PARAM中的LINK项
PaRAM中的LINK地址是对PaRAM0的16位偏移地址。在PaRAM对应的传输完成后,会用链接目标PaRAM的内容覆盖整个当前PaRAM表(包括目标PaRAM中的LINK地址)。如果一个PaRAM链接到0xffff(空表),那么当返回一个A、B、C计数器均为0的空搬移表格。
 AguileraDSP 与 ARM 处理器
毕业设计最后关头,十万火急呀~~~~
求大神帮我看看程序,我是用超声波模块测距,并将测得距离通过串口在组态王上显示...并且通过数码管显示出来。问题是按照这个程序,数码管不亮(这让我非常不解),且和组态王通信有问题,应该是定时器1中断时间的问题,不知道设置多少合适呀? #include STC12C5A60S2.H
 cyanysys51单片机
锂电池,快充,电池寿命,,,,
最近,手机锂电池快充技术,如火如荼,,几大流行技术,必学赶超, 大多数人都会在手机电量低于10%右上角电池图标变红时,产生坐立不安的焦躁情绪,快充的实用性也让越来越多的人愿意去选择带有快充功能的手机。 目前手机应用的主流快充技术有高通Quick Charge 2.
 qwqwqw2088模拟与混合信号
[RTT&瑞萨高性能 CPK-RA6M4] FSP之后都出现找不到board_cfg.h头文件和丢失Jlink驱动
在RT-Thread Studio中使用FSP RA Smart Configurator后都会出现找不到头文件board_cfg.h,以及找不到驱动J-Link的问题,不知道是哪个地方不对了 缺少头文件的方法,在网友的帮助下,在RTT安装目录找到文件后复制到工程目录解决了,
 kit7828瑞萨电子MCU

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved