LPC1768 GPIO中断实验 八个LED轮流点亮100毫秒

2019-11-30来源: 51hei关键字:LPC1768  GPIO中断  LED轮流点亮

路虎LPC1768开发板 GPIO实验


这个例程是将路虎开发板上的八个LED轮流点亮100毫秒,

采用SYStick 定时器中断方式做延时  系统时钟设置在100MHZ

使用时,短路JP8跳线使能LED。


单片机源程序如下:

/**************************************************************************//**

* @file     main.c

* @brief    CMSIS Cortex-M3 GPIO example

*           a LED using CM3 SysTick

* @version  V1.30

* @date     24. Jan 2010

*

* @note

* Copyright (C) 2009 ARM Limited. All rights reserved.

*

* @par

* ARM Limited (ARM) is supplying this software for use with Cortex-M 

* processor based microcontrollers.  This file can be freely distributed 

* within development tools that are supporting such ARM based processors. 

*

* @par

* THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED

* OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF

* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.

* ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR

* CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.

*

******************************************************************************/


#include "LPC17xx.h"



volatile uint32_t msTicks;                            /* counts 1ms timeTicks */

/*----------------------------------------------------------------------------

  SysTick_Handler

*----------------------------------------------------------------------------*/

void SysTick_Handler(void) {

  msTicks++;                        /* increment counter necessary in Delay() */

}


/*------------------------------------------------------------------------------

  delays number of tick Systicks (happens every 1 ms)

*------------------------------------------------------------------------------*/

__INLINE static void Delay (uint32_t dlyTicks) {

  uint32_t curTicks;


  curTicks = msTicks;

  while ((msTicks - curTicks) < dlyTicks);

}


/*------------------------------------------------------------------------------

  configer LED pins

*------------------------------------------------------------------------------*/

__INLINE static void LED_Config(void) {


  LPC_GPIO2->FIODIR = 0x000000ff;               /* LEDs PORT2 are Output */

  LPC_GPIO0->FIODIR = 0x00200000; 

  LPC_GPIO0->FIOPIN |=  0x00200000; 

}


/*------------------------------------------------------------------------------

  Switch on LEDs

*------------------------------------------------------------------------------*/

__INLINE static void LED_On (uint32_t led) {


  LPC_GPIO2->FIOPIN |=  (led);                  /* Turn On  LED */

}


/*------------------------------------------------------------------------------

  Switch off LEDs

*------------------------------------------------------------------------------*/

__INLINE static void LED_Off (uint32_t led) {


  LPC_GPIO2->FIOPIN &= ~(led);                  /* Turn Off LED */

}


/*----------------------------------------------------------------------------

  MAIN function

*----------------------------------------------------------------------------*/

int main (void) {

  uint8_t  location;

        

  if (SysTick_Config(SystemCoreClock / 1000)) { /* Setup SysTick Timer for 1 msec interrupts  */

    while (1);                                  /* Capture error */

  }

  

  LED_Config();                             


  while(1) 

  {

          LED_On (0xff);

        Delay (500);

……………………


关键字:LPC1768  GPIO中断  LED轮流点亮 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481611.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:LPC2148的ADC多通道数据采集程序
下一篇:用ARM点亮一个led并闪烁

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

Cortex-M3学习LPC1768 - DAC实验
终于逮了个忙里偷闲的机会,就再学一下LPC1768的外围功能吧,循序渐进是学习的基本规则,也许LPC1768的DAC与8位单片机16位单片机里面集成的DAC操作类似,但是既然这是懒猫的学习日志,就顺便把DAC再好好复习一下了,或许能品出个什么味来^_^DAC是Digital to Analog Converter的缩写,中文名就是数模转换器,D/A转换器一般由数码寄存器、模拟电子开关电路、解码网络、求和电路及基准电压等几部分组成。如下图所示:图1-1 DAC原理框图数字量以串行或并行方式输入,存储于数码寄存器中,数码寄存器输出的名位数码分别控制对应的模拟开关,使数码为1的位在位权网络上产生与其值成正比的电流值或电压值,再由求和电路
发表于 2019-12-02
Cortex-M3学习LPC1768 - DAC实验
Cortex-M3学习LPC1768 - TFT实验
自己用的LPC1768的开板带有一块2.4寸的TFT彩色液晶屏,虽然自己工作中还用不过显示屏,但是晚上闲着也是闲着,于是继续玩咱的LPC1768吧。我的开发板上的液晶屏的用的是SPI接口,当然你也可以把它设计成并行口,其接口电路如下所示:话说这个液晶屏的驱动芯片是ILI9325,在网上下载了该芯片的数据手册,好家伙有111页,全是E文呀,没办法,谁让咱是小电工呢,就慢慢啃吧。ILI9325这个芯片的寄存器比较多,不过没关系,我们暂时用到的不是太多,这里只要简要的总结,剩下的还是日后用到了再好好研究吧。1、寄存器03H(Entry Mode),该寄存器主要设置图像的显示模式,包括屏幕的扫描方式(水平扫描或垂直扫描),这直接影响
发表于 2019-12-02
Cortex-M3学习LPC1768 - TFT实验
LPC11XX驱动1602程序_12MHz
LCD.c文件:#include "LPC11XX.h"#include "gpio.h"#include "main.h"#include "Delay.h"#include "LCD.h"/*-----------设置D0-D7为输出口-------------*/void Set_GPIO_Output(void){        LPC_GPIO2->DIR |= (0x1<<0);            
发表于 2019-11-30
LPC2148的ADC多通道数据采集程序
#include "config.h"#include "stdio.h"#define   GPIOSET(PIN)  IO0SET = PIN    // 方便修改置位端口#define   GPIOCLR(PIN)        IO0CLR = PIN    // 方便修改清位端口#define   LCD_CON           0x00000250         &nb
发表于 2019-11-30
LPC1768 MP3录音和循环播放源码
LPC1768  2个程序,一个实现录音 一个实现循环播放** 实验名:MP3** KEIL MDK-ARM Standard Version:4.6** 使用外设: 3.2寸LCD**********************************************************************************//**********************************************************************************测试说明:    此程序为MP3测试例程将MP3文件拷入到2G内存卡后,插上3.2寸液晶屏
发表于 2019-11-30
STM32F407 纯寄存器操作GPIO,串口,中断(专治花里胡哨)
2和3没有优先级区分,和所有端口序号有关。选用端口PE2,PE3中断优先级,两位抢占,两位响应。AIRCR,8,9,10bit控制SCB->AIRCR = 0x05FA0000 | 0x500;所以IP寄存器4,5bit控制响应,6,7bit控制抢占设置两个led,PF8,PF9。推挽输出 50,无上拉下拉。系统配置控制器 (SYSCFG)系统配置控制器主要用于管理对可执行代码的存储区域的地址重映射、选择以太网 PHY 接口以及管理 GPIO 的外部中断线连接。实验感受:确实是抢占和响应值越小级别越高。抢占级一样,只有响应级,感觉只要触发都会发生,如LED0和LED1都会被触发,同时亮,只是比单个亮的亮度暗一些。响应级一样,抢占级
发表于 2019-08-23
STM32F407 纯寄存器操作GPIO,串口,中断(专治花里胡哨)
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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