当前位置:首页 > 单片机 > 单片机
[导读]LPC1114一共有42个GPIO,分为4个端口,P0、P1、P2口都是12位的宽度,引脚从Px.0~Px.11,P3口是6位的宽度,引脚从P3.0~P3.5。每个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可读可写方向寄存器0x00IS可读可写中断感应寄存器0x00IBE可读可写双边沿中断寄存器0x00IEV可读可写中断事件寄存器0x00IE可读可写中断屏蔽寄存器0x00RIS只可读原始中断状态寄存器0x00MIS只可读屏蔽中断状态寄存器0x00IC只可写中断清除寄存器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,将会清除这两个中断状态寄存器中的对应位。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

控制寄存器(Control Register)是中央处理器(CPU)中用于管理系统级操作的特殊寄存器,它为操作系统和硬件提供对处理器行为的精细控制。本文从计算机体系结构角度系统阐述控制寄存器的设计原理、功能分类、操作机制...

关键字: 寄存器 处理器

在嵌入式系统开发中,硬件抽象层(Hardware Abstraction Layer,HAL)起着至关重要的作用。它为上层软件提供了统一的硬件访问接口,隐藏了底层硬件的细节,使得软件具有更好的可移植性和可维护性。C++作...

关键字: 嵌入式C++ HAL 寄存器 封装

采用51单片机最小开发板,由8位自制独立按键控制。单片机芯片为STC89C52RC,晶振为@12.000 mhz。8X8LED点阵屏模块由MAX7219驱动,MAX7219包含一个自动扫描电路。你只需要把要显示的数据发送...

关键字: 51单片机 MAX7219 寄存器

电源管理集成电路(PMIC)有益于简化最终应用并缩小其尺寸,也因此备受青睐。然而,当默认启动时序和输出电压与应用要求不符时,就需要定制上电设置。大多数情况下,电路没有可以存储这些设置的非易失性存储器(NVM)。对此,低功...

关键字: 电源管理 集成电路 寄存器

我从Digilent公司拿出了我的Arty Z7板,并在Vivado/Vitis 2021.2中创建了一个项目来让它工作,你可以在我的上一个项目帖子中阅读,我在QDSP-6061的5位数上显示滚动文本,上面写着“Hell...

关键字: 寄存器 AXI4 QDSP-6061 RTL模块

在单片机系统的设计中,复位电路是确保单片机正常工作的关键组成部分。它能够在系统启动时将单片机的内部寄存器和状态设置为初始值,保证单片机从一个确定的状态开始运行。与门芯片作为一种常见的数字逻辑芯片,有时会被应用于单片机复位...

关键字: 复位电路 寄存器 单片机

在数字电路设计中,计数器是一种基础的数字电路组件,用于记录并显示脉冲信号的数量或频率。4进制计数器,即模4计数器,是一种特殊的计数器,其计数范围从0到3,共4个状态。本文将深入探讨如何结合D触发器与寄存器来实现一个4进制...

关键字: D触发器 寄存器 计数器

寄存器是CPU内部存储单元,即寄存器是CPU的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址等。

关键字: 寄存器 CPU

随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,相对电子爱好者已熟悉的模拟电路、数字电路,单片机中有一些新的概念,这些概念非常基本以至于一般作者不屑去谈...

关键字: 单片机 寄存器

今天,小编将在这篇文章中为大家带来基于移位寄存器TDM的实现方式的有关报道。

关键字: 寄存器 移位寄存器
关闭