找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4694|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
路虎LPC1768开发板 GPIO实验

这个例程是将路虎开发板上的八个LED轮流点亮100毫秒,
采用SYStick 定时器中断方式做延时  系统时钟设置在100MHZ
使用时,短路JP8跳线使能LED。

单片机源程序如下:
  1. /**************************************************************************//**
  2. * @file     main.c
  3. * @brief    CMSIS Cortex-M3 GPIO example
  4. *           a LED using CM3 SysTick
  5. * @version  V1.30
  6. * @date     24. Jan 2010
  7. *
  8. * @note
  9. * Copyright (C) 2009 ARM Limited. All rights reserved.
  10. *
  11. * @par
  12. * ARM Limited (ARM) is supplying this software for use with Cortex-M
  13. * processor based microcontrollers.  This file can be freely distributed
  14. * within development tools that are supporting such ARM based processors.
  15. *
  16. * @par
  17. * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
  18. * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
  19. * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
  20. * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
  21. * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
  22. *
  23. ******************************************************************************/

  24. #include "LPC17xx.h"


  25. volatile uint32_t msTicks;                            /* counts 1ms timeTicks */
  26. /*----------------------------------------------------------------------------
  27.   SysTick_Handler
  28. *----------------------------------------------------------------------------*/
  29. void SysTick_Handler(void) {
  30.   msTicks++;                        /* increment counter necessary in Delay() */
  31. }

  32. /*------------------------------------------------------------------------------
  33.   delays number of tick Systicks (happens every 1 ms)
  34. *------------------------------------------------------------------------------*/
  35. __INLINE static void Delay (uint32_t dlyTicks) {
  36.   uint32_t curTicks;

  37.   curTicks = msTicks;
  38.   while ((msTicks - curTicks) < dlyTicks);
  39. }

  40. /*------------------------------------------------------------------------------
  41.   configer LED pins
  42. *------------------------------------------------------------------------------*/
  43. __INLINE static void LED_Config(void) {

  44.   LPC_GPIO2->FIODIR = 0x000000ff;               /* LEDs PORT2 are Output */
  45.   LPC_GPIO0->FIODIR = 0x00200000;
  46.   LPC_GPIO0->FIOPIN |=  0x00200000;
  47. }

  48. /*------------------------------------------------------------------------------
  49.   Switch on LEDs
  50. *------------------------------------------------------------------------------*/
  51. __INLINE static void LED_On (uint32_t led) {

  52.   LPC_GPIO2->FIOPIN |=  (led);                  /* Turn On  LED */
  53. }

  54. /*------------------------------------------------------------------------------
  55.   Switch off LEDs
  56. *------------------------------------------------------------------------------*/
  57. __INLINE static void LED_Off (uint32_t led) {

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

  60. /*----------------------------------------------------------------------------
  61.   MAIN function
  62. *----------------------------------------------------------------------------*/
  63. int main (void) {
  64.   uint8_t  location;
  65.        
  66.   if (SysTick_Config(SystemCoreClock / 1000)) { /* Setup SysTick Timer for 1 msec interrupts  */
  67.     while (1);                                  /* Capture error */
  68.   }
  69.   
  70.   LED_Config();                             

  71.   while(1)
  72.   {
  73.           LED_On (0xff);
  74.         Delay (500);
  75. ……………………

  76. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
GPIO.rar (163.57 KB, 下载次数: 18)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表