MSP430课件3.3通用输入输出端口_第1页
MSP430课件3.3通用输入输出端口_第2页
MSP430课件3.3通用输入输出端口_第3页
MSP430课件3.3通用输入输出端口_第4页
MSP430课件3.3通用输入输出端口_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3.3 通用输入输出端口(General Purpose Input & Output)本节内容nGPIO 概述概述 nMSP430的的GPIO 特点特点nMSP430 GPIO 寄存器寄存器nGPIO 官方库函数官方库函数nGPIO 应用示例应用示例GPIO基本都是用于芯片与片外器件或设备的交互。基本都是用于芯片与片外器件或设备的交互。检测数字输入,如键盘或开关信号;检测数字输入,如键盘或开关信号;驱动驱动LED,蜂鸣器或,蜂鸣器或LCD等其他指示器;等其他指示器;控制片外器件,较高级的使用可以用它们(通过控制片外器件,较高级的使用可以用它们(通过程序)模拟很多器件的时序达到控制相应

2、器件的程序)模拟很多器件的时序达到控制相应器件的目的,比如模拟目的,比如模拟SPI和模拟总线等。和模拟总线等。GPIO 概述 (1/4)nGPIOGPIO (General Purpose I/O),通用输入输出端口,通用输入输出端口。n应用应用n特性特性 GPIO是是MCU与外界交互的重要途径,它具有如下的特性:与外界交互的重要途径,它具有如下的特性:可以独立控制每个可以独立控制每个GPIO口的方向(输入口的方向(输入/输出模式);输出模式);可以独立设置每个可以独立设置每个GPIO的输出状态(高的输出状态(高/低电平);低电平);所有所有GPIO口在复位后都有个默认方向(或输入或输出)。口

3、在复位后都有个默认方向(或输入或输出)。GPIO 概述 (2/4)n寄存器概述寄存器概述 GPIO口都是按组规划,有的芯片是口都是按组规划,有的芯片是8个个GPIO口一组,口一组,有的是有的是16个或个或32个为一组。一般每个个为一组。一般每个GPIO口都需要做口都需要做两个寄存器位:一是选择口线方向(输入输出)二是需两个寄存器位:一是选择口线方向(输入输出)二是需要一个数据位(用于设置输出数据和读取输入数据)。要一个数据位(用于设置输出数据和读取输入数据)。所以一组所以一组GPIO口至少会有两个寄存器口至少会有两个寄存器GPIOxDIR和和GPIOxDATA。GPIOxDIR:控制各个控制各

4、个GPIO口的方向;口的方向;GPIOxDATA:用于各个用于各个GPIO口的输入输出数据。口的输入输出数据。GPIO 概述 (3/4)n寄存器工作图寄存器工作图GPIOxDATA 寄存器寄存器输入锁存输入锁存输出锁存输出锁存GPIOxDIR 寄存器寄存器三态门三态门输入缓冲输入缓冲读写读写I/O PIN选择输出选择输出选择输入选择输入禁止禁止GPIO 概述 (4/4)n端口类型丰富端口类型丰富 有端口有端口P1、P2、P3、P4、P5、P6、P7、P8、P9 、P10 、P11 、S和和COM。产品因型号不同可包含上述所。产品因型号不同可包含上述所有或部分端口。如下表所示:有或部分端口。如下

5、表所示:MSP430的GPIO 特点(1/4)n具有中断能力的端口:具有中断能力的端口:P1和和P2。 端口端口P1和和P2具有输入输出、中断和外部模块功能。这些具有输入输出、中断和外部模块功能。这些 功能可以通过它们各自功能可以通过它们各自9个控制寄存器的设置来实现。个控制寄存器的设置来实现。n不具有中断能力的端口:不具有中断能力的端口:P3和其他端口和其他端口 P3和其他端口没有中断能力,其余功能同和其他端口没有中断能力,其余功能同P1和和P2, 可以实现输入输出功能和外围模块功能。可以实现输入输出功能和外围模块功能。n端口端口COM和和S 这些端口实现与液晶片的直接接口。这些端口实现与液

6、晶片的直接接口。COM端口为液晶片端口为液晶片的公共端,的公共端,S口为液晶片的段码端。详细使用方式,请参口为液晶片的段码端。详细使用方式,请参见本书第四章液晶驱动模块部分。见本书第四章液晶驱动模块部分。MSP430的GPIO 特点(2/4)端口引脚还可以独立的配置成特殊功能,例如端口引脚还可以独立的配置成特殊功能,例如:USART 通用串行同步通用串行同步/异步通信模块;异步通信模块;模拟信号比较器;模拟信号比较器;模拟模拟数字转换器;数字转换器;其他功能其他功能 (请参见具体芯片的数据手册请参见具体芯片的数据手册)。MSP430各端口和功能,如下表所示:各端口和功能,如下表所示:n功能丰富

7、功能丰富MSP430的GPIO 特点(3/4) MSP430各种端口有大量的控制寄存器供用户操作。各种端口有大量的控制寄存器供用户操作。最大限度提供了输入最大限度提供了输入/输出的灵活性。输出的灵活性。每个每个I/O口都可以独立编程。口都可以独立编程。输入或输出可任意组合。输入或输出可任意组合。P1和和P2所有所有I/O口都具有边沿可选的输入中断功能。口都具有边沿可选的输入中断功能。可以按字节输入输出,也可按位进行操作。可以按字节输入输出,也可按位进行操作。可设置可设置I/O口的上拉或下拉功能。口的上拉或下拉功能。可配置可配置I/O驱动能力(高驱动强度或低驱动强度)。驱动能力(高驱动强度或低驱

8、动强度)。n寄存器丰富寄存器丰富MSP430的GPIO 特点(4/4)nPxDIR 输入输出方向寄存器输入输出方向寄存器相互独立的相互独立的8位分别定义了位分别定义了8个引脚的输入个引脚的输入/输出方向。输出方向。使用输入和输出功能时,应该先定义端口的方向。使用输入和输出功能时,应该先定义端口的方向。PxDIR 配置:配置: Bit = 1: 将端口引脚设置为输出模式;将端口引脚设置为输出模式; Bit = 0: 将端口引脚设置为输入模式。将端口引脚设置为输入模式。例,设置例,设置P1端口的端口的P1.0引脚为输出方向,其余引脚引脚为输出方向,其余引脚(P1.1P1.7)设置为输入方向。)设置

9、为输入方向。 P1DIR = 0 x01; / 设置设置P1端口端口P1.0引脚为输出方向引脚为输出方向GPIO 寄存器(1/9)该寄存器是只读寄存器,即用户不能对它写入。该寄存器是只读寄存器,即用户不能对它写入。这个寄存器是只读的,其中的每一位都反映了其对应这个寄存器是只读的,其中的每一位都反映了其对应的的I/O引脚的输入信号引脚的输入信号(引脚配置为通用引脚配置为通用I/O)。PxIN 配置配置:Bit = 1: 输入为高电平输入为高电平;Bit = 0: 输入为低电平输入为低电平;nPxIN 输入寄存器输入寄存器GPIO 寄存器(2/9)输出寄存器是可读可写的。这个寄存器的每个位都反映输

10、出寄存器是可读可写的。这个寄存器的每个位都反映了写入相应输出引脚的值。了写入相应输出引脚的值。将需要的值写入该寄存器,控制输出引脚的电平状态。将需要的值写入该寄存器,控制输出引脚的电平状态。PxOUT 配置配置:Bit = 1: 输输出出为高电平为高电平;Bit = 0: 输出为低电平输出为低电平;nPxOUT 输出寄存器输出寄存器GPIO 寄存器(3/9)2021-12-1314nPxREN 上拉或下拉电阻使能寄存器上拉或下拉电阻使能寄存器nBit = 1: 引脚选择上拉引脚选择上拉; 上拉电阻简单来说就是把电平拉高上拉电阻简单来说就是把电平拉高, 通常用通常用4.710K的电阻接到的电阻接

11、到Vcc电源电源。PxREN寄存器中的每一位可使能或禁用相应寄存器中的每一位可使能或禁用相应I/O引脚的引脚的上拉上拉/下拉电阻。下拉电阻。PxREN 配置配置:Bit = 1: 使能上拉使能上拉/下拉电阻下拉电阻;Bit = 0: 禁用上拉禁用上拉/下拉电阻。下拉电阻。当使能引脚上拉或下拉功能时,通过当使能引脚上拉或下拉功能时,通过 设置设置PxOUT相应位来选择。相应位来选择。VCC引脚引脚 Px.xRR引脚上拉引脚上拉GPIO 寄存器(4/9)2021-12-1315GPIO 寄存器(4/9)nPxREN 上拉或下拉电阻使能寄存器上拉或下拉电阻使能寄存器nBit = 1: 引脚选择上拉引

12、脚选择上拉 上拉电阻简单来说就是把电平拉高上拉电阻简单来说就是把电平拉高, 通常用通常用4.710K的电阻接到的电阻接到Vcc电源电源。nBit = 0: 引脚选择下拉引脚选择下拉; 下拉电阻则是把电平拉低,电阻接到下拉电阻则是把电平拉低,电阻接到GND地线上地线上。PxREN寄存器中的每一位可使能或禁用相应寄存器中的每一位可使能或禁用相应I/O引脚的引脚的上拉上拉/下拉电阻。下拉电阻。PxREN 配置配置:Bit = 1: 使能上拉使能上拉/下拉电阻下拉电阻;Bit = 0: 禁用上拉禁用上拉/下拉电阻。下拉电阻。当使能引脚上拉或下拉功能时,通过当使能引脚上拉或下拉功能时,通过 设置设置Px

13、OUT相应位来选择。相应位来选择。VCC引脚引脚 Px.xRR引脚下拉引脚下拉I/O端口还具有其他片内外设功能,为减少引脚,将这端口还具有其他片内外设功能,为减少引脚,将这些外设功能与些外设功能与I/O端口引脚复用来实现。端口引脚复用来实现。PxSEL来选择引脚的来选择引脚的I/O端口功能与外围模块功能。端口功能与外围模块功能。PxSEL的配置的配置:Bit = 0: 选择引脚为选择引脚为I/O端口端口;Bit = 1: 选择引脚为外设功能。选择引脚为外设功能。nPxSEL 功能选择寄存器功能选择寄存器GPIO 寄存器(5/9)nPxDS 输出驱动强度寄存器输出驱动强度寄存器PxDS寄存器的每

14、个位,设置引脚的输出强度为高驱动寄存器的每个位,设置引脚的输出强度为高驱动强度或低驱动强度。强度或低驱动强度。默认值为低驱动强度。默认值为低驱动强度。PxDS的配置的配置:Bit = 0: 低驱动强度;低驱动强度;Bit = 1: 高驱动强度。高驱动强度。GPIO 寄存器(6/9)该寄存器的该寄存器的8位与端口的位与端口的8个引脚一一对应,其中某一位个引脚一一对应,其中某一位置位表示允许对应的引脚在电平变化(上升沿或下降沿)置位表示允许对应的引脚在电平变化(上升沿或下降沿)时产生中断,否则,表示禁止该位的中断。时产生中断,否则,表示禁止该位的中断。每个每个PxIE位使能的中断请求都与相应的位使

15、能的中断请求都与相应的PxIFG中断标志中断标志相关联,可通过写相关联,可通过写PxOUT和和PxDIR来设置来设置PxIFG。PxIE的配置的配置:Bit = 1: 允许中断;允许中断;Bit = 0: 禁止中断。禁止中断。nPxIE 中断使能寄存器中断使能寄存器(仅中断端口仅中断端口P1和和P2)GPIO 寄存器(7/9)nPxIES 中断触发沿选择寄存器中断触发沿选择寄存器(仅中断端口仅中断端口P1和和P2)如果允许如果允许Px口的某个引脚中断口的某个引脚中断(即即PxIE和和GIE已设置已设置),还需定义该引脚的中断触发方式。还需定义该引脚的中断触发方式。该寄存器可读可写,寄存器的该寄

16、存器可读可写,寄存器的8位分别对应位分别对应Px口口8个引脚个引脚PxIES的配置的配置:Bit = 1: 下降沿使相应中断标志置位;下降沿使相应中断标志置位;Bit = 0: 上升沿使相应中断标志置位。上升沿使相应中断标志置位。GPIO 寄存器(8/9)该寄存器用来表示对应引脚是否产生了由该寄存器用来表示对应引脚是否产生了由PxIES设定设定的电平跳变。的电平跳变。如果在如果在GIE置位,引脚对应的中断使能寄存器置位,引脚对应的中断使能寄存器PxIE位位置位,则会向置位,则会向CPU请求中断处理。请求中断处理。中断标志中断标志PxIFG.0PxIFG.7共用一个中断向量,共用一个中断向量,

17、PxIFG.0PxIFG.7不会自动复位。必须用软件来判定不会自动复位。必须用软件来判定 是对哪一个事件服务,并将相应的标志复位。是对哪一个事件服务,并将相应的标志复位。PxIFG的配置的配置:Bit = 0: 没有中断请求;没有中断请求;Bit = 1: 有中断请求。有中断请求。nPxIFG 中断标志寄存器中断标志寄存器(仅中断端口仅中断端口P1和和P2)GPIO 寄存器(9/9)GPIO_setAsOutputPin() / 设置为输出引脚设置为输出引脚GPIO_setAsInputPin() / 设置为输入引脚设置为输入引脚GPIO_setAsInputPinWithPullDownre

18、sistor() / 设置为输入上拉设置为输入上拉nGPIO API被分成三组函数:被分成三组函数:GPIO的引脚的引脚配置函数,处理中断的函数,以及引脚配置函数,处理中断的函数,以及引脚状态的函数。状态的函数。nGPIO的引脚配置函数的引脚配置函数GPIO 官方库函数(1/4)GPIO_setAsInputPinWithPullUpresistor() / 设置为输入下拉设置为输入下拉GPIO_setDriveStrength() / 设置引脚驱动强度设置引脚驱动强度GPIO_setAsPeripheralModuleFunctionOutputPin() / 设置为外设输出引脚设置为外设输

19、出引脚GPIO_setAsPeripheralModuleFunctionInputPin() / 设置为外设输入引脚设置为外设输入引脚nGPIO的引脚配置函数(续)的引脚配置函数(续)GPIO 官方库函数(2/4)GPIO 官方库函数(3/4)GPIO_enableInterrupt() / 使能中断使能中断GPIO_disbleInterrupt() / 禁止中断禁止中断GPIO_clearInterruptFlag() / 清除中断标志位清除中断标志位GPIO_getInterruptStatus() / 获取中断状态获取中断状态GPIO_interruptEdgeSelect() /

20、选择中断沿选择中断沿nGPIO中断处理函数中断处理函数GPIO 官方库函数(4/4)GPIO_setOutputHighOnPin() / 引脚输出为高引脚输出为高GPIO_setOutputLowOnPin() / 引脚输出为低引脚输出为低GPIO_toggleOutputOnPin() / 翻转引脚翻转引脚 GPIO_getInputPinValue() / 获取引脚输入值获取引脚输入值nGPIO引脚状态的函数引脚状态的函数n示例示例1软件编程示例(伪代码)软件编程示例(伪代码)用用P1.0口控制发光二极管口控制发光二极管P1DIR = 0 x01; / 设置设置P1端口端口P1.0引脚为

21、输出方向引脚为输出方向P1OUT |= 0X01; /输出输出1,灯亮,灯亮P1.0LEDP1OUT &= 0X01; /输出输出0,灯灭,灯灭GPIO 应用示例(1/4)GPIO 应用示例(2/4)n示例示例1 也可以能过调用库函数来实现(伪代码)也可以能过调用库函数来实现(伪代码)/设置设置P1.0P1.0引脚为输出引脚引脚为输出引脚GPIO_setAsOutputPin( MSP430_BASEADDRESS_PORT1_R , GPIO_PORT_P1,GPIO_PIN0 ); / /让让 P1.0P1.0输出高电平输出高电平GPIO_setOutputHighOnPin( MSP430_BASEADDRESS_PORT1_R_, GPIO_PORT_P1,GPIO_PIN0 ); / /让让 P1.0P1.0输出低电平输出低电平GPIO_setOutputLowOnPin ( MSP430_BASEADDRESS_PORT1_R ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论