使用ARM7(LPC2148)闪烁LEDS

闪烁的LED具有强大的处理器,例如ARM 7,即特定于LPC2148,似乎不欣赏处理器的功能。但是该项目对于了解ARM 7编程环境的基础知识是必要的8051或ATMEGA8),将I/O设备接口到处理器等。

但是为什么闪烁的LED呢?闪烁的LED将是第一个实用项目,许多人从新的MCU开始时就实现了,因为它是“ Hello,World!”。电子产品。因此,在不偏离传统的情况下,让我们使用ARM7 LPC2148眨眼。

该项目的目的是闪烁一组连接到ARM7 LPC2148引脚的LED,以便我们可以理解如何配置MCU的寄存器和其他一些基本功能。

原理图

闪烁的LED电路图

需要组件

如果您有ARM7 LPC2148开发委员会,则董事会本身由几个LED组成来测试该程序。在这种情况下,除了开发委员会本身之外,您不需要其他任何东西。

如果您没有开发委员会或由于某种原因您的开发委员会没有 - 董事会LED,那么您可能需要以下组件。

  • ARM7 LPC2148立场 - 单独的董事会或ARM7 LPC2148开发委员会
  • LED x 8 no
  • 1kΩ电阻x 8 no
  • 电源
  • 连接电线
  • USB - 到 - 迷你USB电缆

电路设计

如果您使用的是开发板,那么所有连接都已在板上建立。您需要做的就是为板上电源,将程序上传到MCU并查看输出。

如果您有立场 - 独自一人,仅由基本组件像水晶一样,USB - to -uart芯片等。然后,您需要建立以下连接。

由于我们打算眨眼8 LED,因此我们需要将8个LED连接到任何GPIO引脚及其当前限制电阻。因此,让我们将LED连接到端口1引脚,即P1.18与P1.25,每个电阻为1kΩ。

其余的连接将在LPC2148摊位上建立 - 单独使用。

项目的工作

该项目的工作非常简单。由于我们想打开和关闭连接到GPIO引脚的LED和关闭LED,因此我们要做的就是将相应的销钉高高和低点设置为一定的延迟,以便我们获得闪烁的效果。

要将引脚设置为高,我们需要在相应的引脚上设置“ 1”。同样,为了将引脚设置为低,我们需要在相应的引脚上设置“ 0”。如果我们通过该计划并理解该项目,可以更好地理解该项目。

代码

了解程序

为了眨眼,我们将利用LPC2148 MCU的PLL,计时器和GPIO功能。因此,我们将通过模块看到模块,如何初始化它们并在我们的项目中使用它们。

首先是PLL。PLL用于以用户定义的值设置系统时钟和外围时钟。以下代码行将帮助我们初始化PLL并设置系统时钟(CCLK)和外围时钟(PCLK)分别为60 MHz。PLL教程中解释了PLL模块及其寄存器的详细信息。

  • PLL0CON = 0x01;// PLL0已启用但未连接
  • PLL0CFG = 0x24;//将乘数和分隔值设置为将时钟作为60 MHz
  • PLL0FEED = 0xAA;//设置了用于将PLL0锁定到指定频率的饲料序列。
  • PLL0FEED = 0x55;
  • while(!(pll0stat&plock));//检查PLL的锁定状态
  • PLL0CON = 0x03;// PLL0连接
  • PLL0FEED = 0xAA;//将PLL0设置为系统时钟的馈送顺序
  • PLL0FEED = 0x55;
  • VPBDIV = 0x01;//将外围时钟设置为系统时钟
  • 下一个模块是计时器。我们将初始化计时器,并使用延迟功能生成时间延迟。首先,我们将看到如何初始化LPC2148中的计时器。为此,我们需要遵循以下命令。
  • T0CTCR = 0x00;//在timer0中选择计时器模式。
  • T0PR = 59999;//为了使TC每1 ms递增,将PR设置为此值。
  • T0TCR = 0x02;//计时器重置

下一个任务是在LED的闪烁之间产生延迟。为此,我们将使用计时器模块并定义延迟功能。

为了生成“ D”毫秒的延迟,可以使用以下功能。

空隙延迟(int d)

{

T0TCR = 0x02;//计时器重置

T0TCR = 0x01;//启用计时器

while(t0tc

t0tcr = 0x00;//计时器被禁用。

}

有关LPC2148中计时器的更多信息在计时器教程中。

程序的下一部分与引脚的输入 /输出功能有关。默认情况下,所有引脚均设置为GPIO。如果我们想手动将PIN设置为GPIO,则可以使用Pinsel寄存器进行操作。我们已经在ARM GPIO简介教程中看到了如何将LPC2148 MCU的特定引脚作为GPIO PIN初始化。

由于LED连接到port1引脚,因此我们需要使用Pinsel2寄存器将其配置为GPIO。

Pinsel2 = 0x00;// port1中的所有用户可访问的引脚均设置为GPIO。

接下来,我们需要设置引脚的方向,即输入或输出。为此,我们使用iodir寄存器。将端口1引脚设置为输出,以控制LED。

iodir1 = 0xffffffff;//将端口1的所有引脚设置为输出。

将引脚设置为输出后,最后一步是眨眼LED。为此,我们需要通过使用iOSET寄存器在引脚上设置“ 1”来打开LED,给出1000毫秒的延迟,通过使用IOCLR寄存器在引脚上设置“ 0”来关闭LED,然后给出另一个延迟的延迟1000毫秒。重复该过程,直到系统关闭为止。

ioset1 = 0xffffffff;

延迟(1000);

ioclr1 = 0xffffffff;

延迟(1000);

发表评论

您的电子邮件地址不会被公开。

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map