注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
fxyc87的个人空间 https://home.eeworld.com.cn/space-uid-311785.html [收藏] [复制] [分享] [RSS]
日志

LPC1500体验+@2-点亮LED【系列教程】

已有 1132 次阅读2014-7-4 11:06

上次发表了 LPC1500体验+@1-入门环境熟悉【系列教程】
这次再发表第二讲 LPC1500体验+@2-点亮LED【系列教程】
声明:我的LPC1500系列体验文章全部为原创

工程代码如下:点击下载工程包
  1. #include "lpc15xx.h"

  2. int main(){
  3.         LPC_SYSCON->SYSAHBCLKCTRL0|=1<<13|1<<14|1<<15|1<<16;                //开启iocon,p0,p1,p2时钟
  4.         LPC_GPIO_PORT->DIR[0]=1<<3|1<<25;                                                //p0.3 p0.25设置为输出
  5.         LPC_GPIO_PORT->DIR[1]=1<<1;                                                                        //p1.1
  6.         while(1){
  7.                 LPC_GPIO_PORT->B[32+1]=LPC_GPIO_PORT->B[17];        //p1.1(蓝色) p0.17 sw1按键, 当按键按下时蓝灯亮,否则灭
  8.                 LPC_GPIO_PORT->B[3]=!LPC_GPIO_PORT->B[17];                //p0.3(绿色) p0.17  当键弹起时亮
  9.         }
  10. }
  11. void SystemInit(void){

  12. }
复制代码
工程代码比较简单,以下是解说,
LPC_SYSCON->SYSAHBCLKCTRL0|=1<<13|1<<14|1<<15|1<<16;
这一步是开启相关时钟,默认情况下,GPIO0,1,2时钟是未开启的,所以一定要开启才能使用,这点见用户手册53页(手册可以在我的第一篇系列文章中下载)
LPC_GPIO_PORT->DIR[0]=1<<3|1<<25;         //p0.3 p0.25设置为输出
LPC_GPIO_PORT->DIR[1]=1<<1;         //p1.1
这个是设置相关的LED引脚为输出,当置1为输出,0为输入,默认为0
寄存器图:


LPC_GPIO_PORT->B[32+1]=LPC_GPIO_PORT->B[17];        //p1.1(蓝色) p0.17 sw1按键, 当按键按下时蓝灯亮,否则灭
LPC_GPIO_PORT->B[3]=!LPC_GPIO_PORT->B[17];         //p0.3(绿色) p0.17 当键弹起时亮
这两行内容,见上边,B0-B31分别对应P0.0-P0.31
B32-B63对应P1.0-P1.31,这个寄存器是8位的,只有位0是有效数据,
此寄存器可读可写,但功能是不一样的,
读的时候访问的是IO引脚的实际电平,高电平即1,低电平即0
写的时候,是设置引脚的输出电平(当为输出的时候),写1输出高电平,写0输出低电平
所以上边代码很容易理解了吧

GPIO寄存器比较多,但很简单,可以单个引脚访问,也可以32位为一组访问,这点比较灵活。之前的LPC11XX是没有这个功能的
只能32位寄存器一起设置,这样生成的代码量较大

开发板原理图,可见SW1是连接在P0-17引脚上的。

开发板原理图,可见REB-LED分别连接在P1.1,P0.3引脚上的,



1 LPC1500体验+@1-入门环境熟悉【系列教程】
2 LPC1500体验+@2-点亮LED【系列教程】
3 LPC1500体验+@3-GPIO中断


正在编辑中


本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章