通用输入输出端口-芯片资料.ppt

上传人:小飞机 文档编号:6351866 上传时间:2023-10-19 格式:PPT 页数:29 大小:510.50KB
返回 下载 相关 举报
通用输入输出端口-芯片资料.ppt_第1页
第1页 / 共29页
通用输入输出端口-芯片资料.ppt_第2页
第2页 / 共29页
通用输入输出端口-芯片资料.ppt_第3页
第3页 / 共29页
通用输入输出端口-芯片资料.ppt_第4页
第4页 / 共29页
通用输入输出端口-芯片资料.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《通用输入输出端口-芯片资料.ppt》由会员分享,可在线阅读,更多相关《通用输入输出端口-芯片资料.ppt(29页珍藏版)》请在三一办公上搜索。

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

2、要途径,它具有如下的特性:可以独立控制每个GPIO口的方向(输入/输出模式);可以独立设置每个GPIO的输出状态(高/低电平);所有GPIO口在复位后都有个默认方向(或输入或输出)。,GPIO 概述(2/4),寄存器概述,GPIO口都是按组规划,有的芯片是8个GPIO口一组,有的是16个或32个为一组。一般每个GPIO口都需要做两个寄存器位:一是选择口线方向(输入输出)二是需要一个数据位(用于设置输出数据和读取输入数据)。所以一组GPIO口至少会有两个寄存器GPIOxDIR和GPIOxDATA。GPIOxDIR:控制各个GPIO口的方向;GPIOxDATA:用于各个GPIO口的输入输出数据。,

3、GPIO 概述(3/4),寄存器工作图,GPIOxDATA 寄存器,输入锁存,输出锁存,GPIOxDIR 寄存器,三态门,输入缓冲,读写,I/O PIN,选择输出,选择输入,禁止,GPIO 概述(4/4),端口类型丰富,有端口P1、P2、P3、P4、P5、P6、P7、P8、P9、P10、P11、S和COM。产品因型号不同可包含上述所有或部分端口。如下表所示:,MSP430的GPIO 特点(1/4),具有中断能力的端口:P1和P2。端口P1和P2具有输入输出、中断和外部模块功能。这些 功能可以通过它们各自9个控制寄存器的设置来实现。不具有中断能力的端口:P3和其他端口 P3和其他端口没有中断能力

4、,其余功能同P1和P2,可以实现输入输出功能和外围模块功能。端口COM和S 这些端口实现与液晶片的直接接口。COM端口为液晶片的公共端,S口为液晶片的段码端。详细使用方式,请参见本书第四章液晶驱动模块部分。,MSP430的GPIO 特点(2/4),端口引脚还可以独立的配置成特殊功能,例如:USART 通用串行同步/异步通信模块;模拟信号比较器;模拟数字转换器;其他功能(请参见具体芯片的数据手册)。,MSP430各端口和功能,如下表所示:,功能丰富,MSP430的GPIO 特点(3/4),MSP430各种端口有大量的控制寄存器供用户操作。最大限度提供了输入/输出的灵活性。,每个I/O口都可以独立

5、编程。输入或输出可任意组合。P1和P2所有I/O口都具有边沿可选的输入中断功能。可以按字节输入输出,也可按位进行操作。可设置I/O口的上拉或下拉功能。可配置I/O驱动能力(高驱动强度或低驱动强度)。,寄存器丰富,MSP430的GPIO 特点(4/4),PxDIR 输入输出方向寄存器,相互独立的8位分别定义了8个引脚的输入/输出方向。使用输入和输出功能时,应该先定义端口的方向。PxDIR 配置:Bit=1:将端口引脚设置为输出模式;Bit=0:将端口引脚设置为输入模式。例,设置P1端口的P1.0引脚为输出方向,其余引脚(P1.1P1.7)设置为输入方向。P1DIR=0 x01;/设置P1端口P1

6、.0引脚为输出方向,GPIO 寄存器(1/9),该寄存器是只读寄存器,即用户不能对它写入。这个寄存器是只读的,其中的每一位都反映了其对应的I/O引脚的输入信号(引脚配置为通用I/O)。PxIN 配置:Bit=1:输入为高电平;Bit=0:输入为低电平;,PxIN 输入寄存器,GPIO 寄存器(2/9),输出寄存器是可读可写的。这个寄存器的每个位都反映了写入相应输出引脚的值。将需要的值写入该寄存器,控制输出引脚的电平状态。PxOUT 配置:Bit=1:输出为高电平;Bit=0:输出为低电平;,PxOUT 输出寄存器,GPIO 寄存器(3/9),2023/10/19,14,PxREN 上拉或下拉电

7、阻使能寄存器,Bit=1:引脚选择上拉;上拉电阻简单来说就是把电平拉高,通常用4.710K的电阻接到Vcc电源。,PxREN寄存器中的每一位可使能或禁用相应I/O引脚的上拉/下拉电阻。PxREN 配置:Bit=1:使能上拉/下拉电阻;Bit=0:禁用上拉/下拉电阻。当使能引脚上拉或下拉功能时,通过 设置PxOUT相应位来选择。,GPIO 寄存器(4/9),2023/10/19,15,GPIO 寄存器(4/9),PxREN 上拉或下拉电阻使能寄存器,Bit=1:引脚选择上拉 上拉电阻简单来说就是把电平拉高,通常用4.710K的电阻接到Vcc电源。,Bit=0:引脚选择下拉;下拉电阻则是把电平拉低

8、,电阻接到GND地线上。,PxREN寄存器中的每一位可使能或禁用相应I/O引脚的上拉/下拉电阻。PxREN 配置:Bit=1:使能上拉/下拉电阻;Bit=0:禁用上拉/下拉电阻。当使能引脚上拉或下拉功能时,通过 设置PxOUT相应位来选择。,I/O端口还具有其他片内外设功能,为减少引脚,将这些外设功能与I/O端口引脚复用来实现。PxSEL来选择引脚的I/O端口功能与外围模块功能。PxSEL的配置:Bit=0:选择引脚为I/O端口;Bit=1:选择引脚为外设功能。,PxSEL 功能选择寄存器,GPIO 寄存器(5/9),PxDS 输出驱动强度寄存器,PxDS寄存器的每个位,设置引脚的输出强度为高

9、驱动强度或低驱动强度。默认值为低驱动强度。PxDS的配置:Bit=0:低驱动强度;Bit=1:高驱动强度。,GPIO 寄存器(6/9),该寄存器的8位与端口的8个引脚一一对应,其中某一位置位表示允许对应的引脚在电平变化(上升沿或下降沿)时产生中断,否则,表示禁止该位的中断。每个PxIE位使能的中断请求都与相应的PxIFG中断标志相关联,可通过写PxOUT和PxDIR来设置PxIFG。PxIE的配置:Bit=1:允许中断;Bit=0:禁止中断。,PxIE 中断使能寄存器(仅中断端口P1和P2),GPIO 寄存器(7/9),PxIES 中断触发沿选择寄存器(仅中断端口P1和P2),如果允许Px口的

10、某个引脚中断(即PxIE和GIE已设置),还需定义该引脚的中断触发方式。该寄存器可读可写,寄存器的8位分别对应Px口8个引脚PxIES的配置:Bit=1:下降沿使相应中断标志置位;Bit=0:上升沿使相应中断标志置位。,GPIO 寄存器(8/9),该寄存器用来表示对应引脚是否产生了由PxIES设定的电平跳变。如果在GIE置位,引脚对应的中断使能寄存器PxIE位置位,则会向CPU请求中断处理。中断标志PxIFG.0PxIFG.7共用一个中断向量,PxIFG.0PxIFG.7不会自动复位。必须用软件来判定 是对哪一个事件服务,并将相应的标志复位。PxIFG的配置:Bit=0:没有中断请求;Bit=

11、1:有中断请求。,PxIFG 中断标志寄存器(仅中断端口P1和P2),GPIO 寄存器(9/9),GPIO_setAsOutputPin()/设置为输出引脚GPIO_setAsInputPin()/设置为输入引脚GPIO_setAsInputPinWithPullDownresistor()/设置为输入上拉,GPIO API被分成三组函数:GPIO的引脚配置函数,处理中断的函数,以及引脚状态的函数。,GPIO的引脚配置函数,GPIO 官方库函数(1/4),GPIO_setAsInputPinWithPullUpresistor()/设置为输入下拉GPIO_setDriveStrength()/

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

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

14、4),示例1 也可以能过调用库函数来实现(伪代码),/设置P1.0引脚为输出引脚GPIO_setAsOutputPin(MSP430_BASEADDRESS_PORT1_R,GPIO_PORT_P1,GPIO_PIN0);,/让 P1.0输出高电平GPIO_setOutputHighOnPin(MSP430_BASEADDRESS_PORT1_R_,GPIO_PORT_P1,GPIO_PIN0);,/让 P1.0输出低电平GPIO_setOutputLowOnPin(MSP430_BASEADDRESS_PORT1_R,GPIO_PORT_P1,GPIO_PIN0);,2023/10/19,2

15、7,示例2利用按键改变LED的亮灭,按键对应的引脚配置为中断方式。,#include void main(void)/关闭看门狗 WDTCTL=WDTPW|WDTHOLD;P4DIR|=0 x08;/选择P4.3为输出 P2DIR,P2.6,MSP430F6638,P4.3,VCC,R,R,Key,LED,R,GPIO 官方库函数(3/4),2023/10/19,28,其他应用示例,请参阅实验手册,#pragma vector=PORT2_VECTOR_interrupt void Port_2(void)volatile unsigned int i;P4OUT=0 x08;/翻转P4.3外接的LED亮灭状态 i=1500;/延时 do(i-);while(i!=0);while(!(P2IN/清除P2.6中断标志,GPIO 官方库函数(4/4),谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号