cortex m0 lpc1114 DATA寄存器

发布者:科技舞者最新更新时间:2016-12-09 来源: eefocus关键字:cortex  lpc1114  DATA寄存器 手机看文章 扫描二维码
随时随地手机看文章

这一节,介绍如何利用DATA寄存器检测引脚上的高低电平变化。

新建一个工程,结构如下图所示:

新建工程

在main.c文件中,输入以下代码:

  1. #include “LPC11XX.H”

  2. #define LED1_ON  LPC_GPIO1->DATA &= ~(1<<0)

  3. #define LED1_OFF LPC_GPIO1->DATA |= (1<<0)

  4. #define LED2_ON  LPC_GPIO1->DATA &= ~(1<<1)

  5. #define LED2_OFF LPC_GPIO1->DATA |= (1<<1)

  6. #define KEY1_DOWN (LPC_GPIO1->DATA&(1<<9))!=(1<<9)

  7. #define KEY2_DOWN (LPC_GPIO1->DATA&(1<<10))!=(1<<10)

  8. #define KEY3_DOWN (LPC_GPIO1->DATA&(1<<4))!=(1<<4)

  9. #define KEY4_DOWN (LPC_GPIO1->DATA&(1<<10))!=(1<<10)

  10. void delay()

  11. {

  12.    uint16_t i,j;

  13.    for(i=0;i<5000;i++)

  14.       for(j=0;j<10;j++);

  15. }

  16. void led_init()

  17. {

  18.    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16); // 使能IOCON时钟

  19.    LPC_IOCON->R_PIO1_0 &= ~0x07;

  20.    LPC_IOCON->R_PIO1_0 |= 0x01; //把P1.0脚设置为GPIO

  21.    LPC_IOCON->R_PIO1_1 &= ~0x07;

  22.    LPC_IOCON->R_PIO1_1 |= 0x01; //把P1.1脚设置为GPIO

  23.    LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<16); // 禁能IOCON时钟

  24.    LPC_GPIO1->DIR |= (1<<0); // 把P1.0设置为输出引脚

  25.    LPC_GPIO1->DATA |= (1<<0); // 把P1.0设置为高电平

  26.    LPC_GPIO1->DIR |= (1<<1); // 把P1.1设置为输出引脚

  27.    LPC_GPIO1->DATA |= (1<<1); // 把P1.1设置为高电平

  28. }

  29. int main()

  30. {

  31.    led_init();

  32.    while(1)

  33.    {

  34.       if(KEY1_DOWN) // 如果按下了KEY1键

  35.       {

  36.          delay();   // 延时消抖

  37.          if(KEY1_DOWN) // 再次判断是否按下了KEY1键

  38.          {

  39.             LED1_ON;

  40.             while(KEY1_DOWN); // 如果KEY1一直按着不放,程序停留在此处

  41.             LED1_OFF;

  42.          }

  43.       }

  44.       if(KEY2_DOWN) // 如果按下了KEY2键

  45.       {

  46.          delay();   // 延时消抖

  47.          if(KEY2_DOWN) // 再次判断是否按下了KEY2键

  48.          {

  49.             LED2_ON;

  50.             while(KEY2_DOWN); // 如果KEY2一直按着不放,程序停留在此处

  51.             LED2_OFF;

  52.          }

  53.       }

  54.    }

  55. }

关于LED部分的代码解释,请看上一节。

第6~9行,按键1和按键2的宏定义,读取P1.9和P1.10引脚上的电平。

例如,读取P1.0引脚的电平:(LPC_GPIO1->DATA&(1<<9))!=(1<<9)

这条语句的思想是,给DATA寄存器bit9“与”1,如果bit9变为0,说明此位在没有“与”之前为0,即低电平;如果bit9还是1,说明是高电平。这样,即可判断按键有无按下。

在main函数中,没有对按键的初始化,是因为P1.9和P1.10引脚在默认的情况下就是GPIO,而且是输入功能。


关键字:cortex  lpc1114  DATA寄存器 引用地址:cortex m0 lpc1114 DATA寄存器

上一篇:cortex m0 lpc1114 RIS寄存器
下一篇:cortex m0 lpc1114GPIO输出功能

推荐阅读最新更新时间:2024-03-16 15:24

TI推出Sitara微处理器单元AM3715与AM3703,采用1GHz ARM Cortex-A8
日前,德州仪器(TI)宣布推出两款采用1GHz ARM Cortex-A8的Sitara微处理器单元(MPU)AM3715与AM3703,其更快的系统响应时间与启动时间以及更长的电池使用寿命可为开发人员提供极大的便利。这些MPU可满足各种应用需求,如便携式数据终端、便携式医疗设备、家庭与楼宇自动化、导航系统、智能显示屏以及人机接口( HMI )工业应用等。AM3703适用于不需要图形功能的应用。AM3715可提供比前代Sitara器件高2倍的图形性能,支持流畅复杂的3D渲染、完美的视觉效果以及增强型图形用户界面(GUI)等功能。AM3715与AM3703均可将ARM性能提升近40%,开发人员可延长应用电池使用寿命,实现比前代Sita
[工业控制]
ARM Cortex-A78AE芯片设计:双模式加成,让芯片更安全
芯片设计商ARM公司今天宣布推出一套新的解决方案,用于汽车和工业用例的自动系统,其中包括ARM Cortex-A78AE高性能CPU,Mali-G78AE GPU和ARM Mali-C71AE图像信号处理器。这三款芯片脱颖而出的原因是它们都具有内置的安全功能。在这里, 安全 意味着这些芯片具有额外的功能,以确保每一次计算基本上都是双重检查。 传统上,ARM为其CPU提供了两种模式。在 分离模式 中,所有的核心都独立工作,只是时不时地下线进行快速的理智检查。这对于安全要求较低或没有安全要求的应用来说,效果很好,因为核心可以以接近最大的性能运行。在 锁定模式 下,核心成对运行,它们的操作会相互交叉检查。这有助于这些芯片满足各种汽车
[嵌入式]
ARM <font color='red'>Cortex</font>-A78AE芯片设计:双模式加成,让芯片更安全
Arm发布新款Cortex-A65AE处理器 可与Cortex-A76AE结合实现感知功能
据外媒报道,Arm于近日发布了最新版的“增强版车用级芯片(Automotive Enhanced chips)”,Arm Cortex-A65AE是一款高带宽、低延迟的处理器,旨在安全地应对车用级传感器数据的高通量(high-throughput)要求。 随着车辆自动化程度提升,摄像头、雷达及激光雷达等负责采集数据的传感器数量将随之大幅提升。同时,车内的座舱也将随之提升,增强现实显示屏、安全警示及高精度地图将为驾驶员提供跟我给详尽的实时数据。为及时地将该类数据交付给驾驶员,用户需要提升硬件的安全信息处理水平。 Arm Cortex-A65AE将通过多线程处理功能(multithreading capability)及Arm
[汽车电子]
远离ARM,国产MCU厂商生活依旧滋润
看惯了各大网站大谈国外MCU厂商转入ARM Cortex M系列的进展,还真以为全民投入ARM阵营了,但对于国内大部分MCU厂家来说,这只是个不可预期的未来。因为还有很多厂家还只局限在0TP和FLASH的应用领域,在这几天的IIC-China展会,我就拜访几家这样的公司,这篇文章我将分享这几家公司的经营之道。 这几家公司基本都基于51单片机以及延伸产品开发,目前基本都没有进入ARM Cortex M系列的计划,一是市场够大,特别是家电市场需求依然强劲;二是现有衍生产品与新应用相互推进,赢利空间还不错;三是ARM系列还威胁不到它们的生存。 这几家公司有很多共性,但也有各自特色。卓荣科技是主营小家电用MCU产品,同时也有一些特
[单片机]
Cortex-M3内核之位带操作
位带操作(Bit-Band Operations ),顾名思义,就是开发人员可以单独对CPU寄存器的某一位进行读写操作,这无疑将会简化我们开发代码的难度。我们也许已经在8051单片机中体会到了这种位带操作带来的好处,比喻说我要点亮一盏LED灯(假设这里LED灯的阴极已接地),通常只需要下面两行代码就可以完全搞定: sbit LED=PX^n; LED=1; //X的取值范围为0-3,取0时外部加上拉电阻。n的取值范围是0-7。 这样子,我们只需要使51单片机的I/O口的某一位输出1,就可以点亮LED,而不影响其他管脚,好处显而易见。其实“位带操作”这个概念最初就是在51单片机中提出来的,今天,CM3将
[单片机]
<font color='red'>Cortex</font>-M3内核之位带操作
ARM Cortex-R52专属汽车安全管理程序面世
ARM表示OpenSynergy公司正在为其最先进的实时安全处理器ARM® Cortex®-R52 开发业界第一款软件管理程序。该管理程序可将任何基于Cortex-R52的芯片变为虚拟机,并能同时执行不同的软件任务。针对诸如无人驾驶和工业控制系统等设备中芯片不断提升的复杂性,该方法可以将安全性至关重要的功能与无需严格控制的功能相隔离。此外,它能够将应用程序整合到更少的电子控制单元(ECU),以便管理复杂性并降低成本。 ARM嵌入式营销副总裁Richard York表示:“面向大众市场的无人汽车将被赋予大幅增强的ECU计算能力和安全管理更复杂软件栈的能力。为此,Cortex-R52应运而生,借助管理程序实现软件隔离,从而保护重要
[汽车电子]
Cortex-M3的新助手-- CoreLink SDK-100
ARM CoreLink系统设计包(ARM CoreLink System Design Kit)是一个全新的产品系列,帮助SoC设计者更快地创建高效的系统。下面就随单片机小编一起来了解一下相关内容吧。 因此,很自然地,ARM将它加入了全新的ARM Cortex-M3 DesignStart项目,帮助设计团队快速地创建基于Cortex-M3的IoT和嵌入式产品。全新的CoreLink SDK-100对Cortex-M3 DesignStart用户开放,本文将介绍你能用它做些什么。 ARM DesignStart提供获取ARM IP最快、最简单的方式,包括对Cortex-M3和Cortex-M3系统的即时评估,在商业化前无需任何预
[单片机]
意法半导体(ST)新的32位系列Cortex-M3内核微控制器重塑MCU市场
STM32 MCU系列大幅度提高了嵌入式系统的性价比和功耗水准 中国,2007年6月11日 — 世界领先的半导体制造厂商意法半导体(纽约证券交易所:STM)今天推出一个新的32位微控制器系列产品,新产品所用微处理器是ARM公司为要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。STM32系列产品得益于Cortex-M3在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有新功能都同时具有业界最优的功耗水平。ST是Cortex-M3内核开发项目的一个主要合作方,现在是第一个
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved