cortex m0 lpc1114_GPIO引脚寄存器综述

发布者:翅膀小鹰最新更新时间:2016-12-09 来源: eefocus关键字:cortex  lpc1114_GPIO引脚  寄存器 手机看文章 扫描二维码
随时随地手机看文章

LPC1114一共有42个GPIO,分为4个端口,P0、P1、P2口都是12位的宽度,引脚从Px.0~Px.11,P3口是6位的宽度,引脚从P3.0~P3.5。

每个GPIO都可以通过软件设置为输入或输出引脚,读取引脚的电平,就需要把引脚设置为输入引脚,比如引脚用来做ADC输入引脚或按键检测引脚的时候。需要程序控制引脚电平的时候,就把引脚设置为输出引脚,比如引脚控制外部三极管导通与截止的时候。

每个GPIO都可以作为中断引脚来感知外部。中断还可以设置为电平中断或边沿触发中断。电平中断又可以设置为低电平中断或高电平中断,边沿触发又可以设置为下降沿中断或上升沿中断,也可以设置为双边沿触发中断。它的灵活性给我们设计带了很大的方便。

引脚作为GPIO功能时,默认是输入引脚。

 

由于GPIO的寄存器并不是很多,我们首先了解学习它的寄存器,然后通过实例讲解GPIO的各种输入输入应用。

 

2.1 GPIO寄存器定义

 

名称访问属性描述复位值
DATA可读可写数据寄存器不定
DIR可读可写方向寄存器0x00
IS可读可写中断感应寄存器0x00
IBE可读可写双边沿中断寄存器0x00
IEV可读可写中断事件寄存器0x00
IE可读可写中断屏蔽寄存器0x00
RIS只可读原始中断状态寄存器0x00
MIS只可读屏蔽中断状态寄存器0x00
IC只可写中断清除寄存器0x00

 

1. 数据寄存器DATA


名称

描述

复位值

访问属性

11:0

DATA

1为高电平,0为低电平

不定

可读可写

31:12

保留


数据寄存器用来读取单片机引脚的电平和控制单片机引脚的电平。当引脚设置为输入引脚时,读取DATA寄存器可以获得引脚的电平。当引脚设置为输出引脚时,给DATA寄存器写值可以控制引脚的电平。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。例如,读取P0口的DATA寄存器,bit0就对应P0.1引脚的电平,bit7就对应P0.7引脚的电平,以此类推。bit12到bit31这些位保留不用。LPC1114的四个端口,每个端口都有一个DATA寄存器。由于P3口只有6个引脚,所以P3口的DATA寄存器只有bit0到bit5是可以使用的,其它位无用。

当引脚设置为输入引脚的时候,给DATA寄存器写值不会影响到引脚的电平,没有意义。此时DATA寄存器的值只受引脚外部电平的影响。

 

2. 方向寄存器DIR

名称

描述

复位值

访问属性

11:0

IO

1为输出,0为输入

0x000

可读可写

31:12

保留

 

方向寄存器用来设置GPIO引脚的输入和输出功能。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。例如,设置P0.5为输入引脚,需设置GPIO0的DIR寄存器中的bit5为0,设置P0.5为输出引脚,需设置GPIO0的DIR寄存器中的bit5为1。由上表复位值可知,GPIO默认是输入引脚。bit12到bit31这些位保留不用。

 

3. 中断感应寄存器IS

名称

描述

复位值

访问属性

11:0

ISENSE

0为边沿触发

1为电平触发

0x000

可读可写

31:12

保留

 

中断感应寄存器用来设置产生中断的触发方式。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。给对应的bit写0,把对应的引脚设置为边沿触发。给对应的bit写1,把对应的引脚设置为电平触发。由复位值可知,引脚默认为边沿触发方式。边沿触发,分为上升沿触发和下降沿触发两种方式。电平触发,分为高电平触发和低电平触发两种方式。具体是哪种边沿或者哪种电平触发中断,需要由下面将要讲到的“中断事件触发器”决定。

 

4. 双边沿中断寄存器IBE

名称

描述

复位值

访问属性

11:0

IBE

0:中断方式由IEV决定

1:设置为双边沿中断

0x000

可读可写

31:12

保留

 

双边沿中断寄存器用来设置引脚中断方式是否为双边沿触发中断。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。给对应的bit写1,把对应的引脚设置为双边沿触发中断,给对应的bit写0,则触发方式由中断事件寄存器的设置决定。

 

5. 中断事件寄存器IEV

名称

描述

复位值

访问属性

11:0

IEV

0:下降沿或低电平触发

1:上升沿或高电平触发

0x000

可读可写

31:12

保留

 

中断感应寄存器用来设置高低电平或者是上升沿和下降沿触发中断的方式。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。这个寄存器与“中断感应寄存器”配合使用,决定引脚的电平触发方式。给对应的bit位写0,如果“中断感应寄存器”设置为边沿触发,这里即是下降沿触发中断,如果“中断感应寄存器”设置为电平触发,这里即是低电平触发中断。给对应的bit位写1,如果“中断感应寄存器”设置为边沿触发,这里即是上升沿触发中断,如果“中断感应寄存器”设置为电平触发,这里即是高电平触发中断。由复位值可知,引脚的中断触发方式为低电平触发中断或者是下降沿触发中断。

 

6.中断屏蔽寄存器IE

名称

描述

复位值

访问属性

11:0

MASK

0:屏蔽引脚的中断

1:不屏蔽引脚的中断

0x000

可读可写

31:12

保留

 

中断屏蔽寄存器用来屏蔽引脚上的中断。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。给对应的bit位写0,屏蔽对应引脚的中断。给对应的bit位写1,不屏蔽对应引脚的中断。

它其实是接下来要讲到的“屏蔽中断状态寄存器”的开关。当引脚设置好触发中断方式以后,在引脚上产生了触发中断的条件,如果这里的对应引脚的位设置为1,那么“屏蔽中断状态寄存器”中的对应状态位将置1,如果这里的对应引脚的位设置为0,那么“屏蔽中断状态寄存器”中的对应状态位将不会置1。

 

7. 原始中断状态寄存器RIS

名称

描述

复位值

访问属性

11:0

RAWST

0:表示没有产生中断

1:表示产生了中断

0x000

只读

31:12

保留

 

原始中断状态寄存器,是一个只读寄存器。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。读取对应的位,可以知道引脚上有没有产生符合条件的中断。

需要注意的是,这里的状态位,并不受“中断屏蔽寄存器”设置位的影响。例如,当某引脚设置为下降沿产生中断,如果某引脚上产生了下降沿,这个寄存器中的对应位就会置1。也就是说,前面提到的“中断屏蔽寄存器”的设置,只会影响到“屏蔽中断状态寄存器”的状态位。

 

8. 屏蔽中断状态寄存器MIS

名称

描述

复位值

访问属性

11:0

MASK

0:表示没有产生中断

1:表示产生了中断

0x000

只读

31:12

保留

 

屏蔽中断状态寄存器,是一个只读寄存器。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。读取对应的位,可以知道引脚上有没有产生符合条件的中断。

需要注意的是,这里的状态位,受“中断屏蔽寄存器”设置位的影响。例如,当某引脚设置为下降沿产生中断,如果某引脚上产生了下降沿,而且在“中断屏蔽寄存器”中的引脚对应位设置为1,这个寄存器中的对应位才会置1。也就是说,即使引脚上产生了符合条件的中断,如果“中断屏蔽寄存器”中的引脚对应位设置为0,这个状态寄存器中的对应位是不会置1的。

 

9.中断清除寄存器IC

名称

描述

复位值

访问属性

11:0

CLR

0:不起作用

1:清除中断状态位

0x000

只写

31:12

保留

 

中断清除寄存器是一个只写寄存器,用来清除对应引脚中断状态位。GPIO有两个中断状态寄存器,它们分别是“屏蔽中断状态寄存器”和“原始中断状态寄存器”。给“中断清除寄存器”对应的位写1,将会清除这两个中断状态寄存器中的对应位。


关键字:cortex  lpc1114_GPIO引脚  寄存器 引用地址:cortex m0 lpc1114_GPIO引脚寄存器综述

上一篇:cortex m0 lpc1114GPIO输出功能
下一篇:lpc1114看门狗_窗口看门狗

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

7课:单片机的特殊功能寄存器
通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧! 下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。 对上面的图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于定时/计数器,串行I/O口等怎么用
[单片机]
7课:单片机的特殊功能<font color='red'>寄存器</font>
stm32f407(cortex-M4)USART串口调试程序
上文通过调试TIM1遇到了一些问题,深入了解了stm32F407的复用功能。网上流传的很多资料都是cortex-M3的,现在都M4了,观念自然得跟上,一味照搬没有自己的思考是不行的。记得我最早的调试的程序就是串口USART,刚入手嘛,就网上找了个例程,例程对IO复用是这么写的: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1, ENABLE); //打开复用时钟 GPIO_StructInit(&GPIO_InitStructure); GPIO_Init
[单片机]
瑞萨RA系列32位Arm Cortex-M MCU让IoT时代更安全
全球半导体解决方案供应商瑞萨电子集团宣布, RA产品家族32位Arm® Cortex®-M微控制器(MCU)获得PSA 2级认证和IoT平台安全评估标准(SESIP)认证。 配备灵活配置软件包(FSP)的RA6M4 MCU已通过PSA 2级认证,在RA4和RA6系列MCU获得PSA 1级认证的基础上进一步进行扩展。瑞萨RA6M3、RA6M4和RA4M2 MCU产品群均已通过“物理和逻辑攻击者”防护认证的SESIP1标准。 除被广泛认可的行业认证外,瑞萨RA MCU还通过在Armv8-M的Arm TrustZone®基础上结合经NIST CAVP认证的安全加密引擎,为客户打造先进的物联网安全性。RA产品家族融合了基于硬
[单片机]
瑞萨RA系列32位Arm <font color='red'>Cortex</font>-M MCU让IoT时代更安全
ATmega32 I/O存储器
ATmega32 的I/O 空间定义见 P283“ 寄存器概述” 。 ATmega32所有的I/O及外设都被放置于I/O I/O位置都可以通过IN 与OUT指 令来访问,在32个通用工作寄存器和 I/O之间传输数据。 地址为0x00 - 0x1F 的I/O寄存 器还可用 SBI 和 CBI 指令直接进行位寻址,而 SBIS 和 SBIC 则用来检查某一位的值。更 多内容请参见指令集。使用 IN 和 OUT 指令时地址必须在 0x00 - 0x3F 之间。如果要象 SRAM 一样通过 LD 和 ST 指令访问 I/O 寄存器,相应的地址要加上 0x20。 为了与后续产品兼容,保留未用的未应写 0 ,而保留的I/O 寄存器则不应进行
[单片机]
MSP430通用IO寄存器
1.PxDIR寄存器用来设置IO口的输出方向 当某一位为1时选择输出 当某一位为0时选择输入 P1DIR = 0X02; //设置P1.1为输出 或者 P1DIR |= BIT1;//设置P1.1为输出 2.PxOUT寄存器用来设置IO口的输出高低电平 当某一位为1时选择输出高电平 当某一位为0时选择输出低电平 P1OUT = 0X02; //设置P1.1为输出高电平 或者 P1OUT |= BIT1;//设置P1.1为输出低电平 3.PxIN寄存器用来设置IO口的输入高低电平 当某一位为1时选择输入高电平 当某一位为0时选择输入低
[单片机]
ATmega128 状态寄存器
状态寄存器包含了最近执行的算术指令的结果信息。这些信息可以用来改变程序流程以 实现条件操作。状态寄存器的内容只有在ALU 运算结束后才会更新。这样,在多数情况 下就不需要专门的比较指令了,从而使系统运行更快速,代码效率更高。 在进入中断例程时状态寄存器不会自动保存;中断返回时也不会自动恢复。这些工作需 要软件来处理。 AVR 中断寄存器 – SREG – 定义如下: • Bit 7 – I: 全局中断使能 置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果I 清零,则不论单独中断标志置位与否,都不会产生中断。任意一个中断发生后I 清零,而执行RETI指令后置位以使能中断。I 也可以通过SEI 和CLI
[单片机]
ATmega128 状态<font color='red'>寄存器</font>
Cortex内核拿下大半江山,MCU市场征战
随着NXP发布LPC1700系列Cortex-M3内核的MCU,围绕着ARM新宠Cortex内核的竞争已经进入白热化。    目前Cortex-M3处理器内核的授权客户数已达到28家,包括东芝、ST、Ember、Accent、Actel、ENERGY、ADI、NXP、TI、Atmel、Broadcom、Samsung、Zilog和Renesas,其中ST、TI、NXP、Atmel和东芝已经推出基于Cortex-M3的MCU产品。 在这5家中,通过收购Luminary入局的TI和ST属于最先吃螃蟹的人,到现在已经成果初现;NXP则凭借最新的V2版内核100MHz主频的LPC1700系列大有后来居上之势;至于ATMEL和TO
[嵌入式]
<font color='red'>Cortex</font>内核拿下大半江山,MCU市场征战
Msp430时钟设计与寄存器说明
4.1基础时钟模块+介绍 基础时钟模块+支持低系统消耗和超低功耗。采用三种片内时钟信号,用户可以选择合适 的性能和低功耗。基础时钟模块只需接一个外部电阻、一个或两个外部晶体、或者用振荡器, 通过软件控制。 基础时钟模块+有4 个时钟源: LFXT1CLK:由低频时钟晶体或外接32768Hz 时钟源产生的低频/高频振荡器或由标准晶 体、振荡器,或外部400KHz~16MHz的外部时钟源提供。 XT2CLK:可供选择的高频振荡器,由标准晶体、振荡器,或外部400KHz~16MHz 的外 部时钟源提供。 DCOCLK:片内可数字控制的振荡器。 VLOCLK:片内超低功耗、12KHz 的低频振荡器。 基础时钟模块可提
[单片机]
Msp430时钟设计与<font color='red'>寄存器</font>说明
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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