收藏 分享(赏)

第四讲-通用数字端口.ppt

上传人:无敌 文档编号:1158935 上传时间:2018-06-15 格式:PPT 页数:22 大小:451.50KB
下载 相关 举报
第四讲-通用数字端口.ppt_第1页
第1页 / 共22页
第四讲-通用数字端口.ppt_第2页
第2页 / 共22页
第四讲-通用数字端口.ppt_第3页
第3页 / 共22页
第四讲-通用数字端口.ppt_第4页
第4页 / 共22页
第四讲-通用数字端口.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、第四讲 通用数字端口,下图是我们开发板使用的MSP430G2553芯片PDIP20封装的引脚图。除了电源、晶振、复位等引脚外,剩下P1、P2都是通用数字端口。,一、概述,MSP430 执行多达8 个数字I/O 端口,P1 至P8。每个端口有多达8 个I/O 引脚。每个I/O 引脚可针对输入或输出方向单独配置,并且可对每个I/O 线路单独进行读取或写入操作。 端口P1 和P2 有中断功能。每个针对P1 和P2 I/O 线路的中断可被单独启用并被配置成在一个输入信号的上升或者下降边沿上提供一个中断。所有I/O 线路提供一个单一中断矢量,并且所有P2 I/O 线路提供一个不同的,单中断矢量。,数字I

2、/O 特性包括: 单独可编程独立I/O 输入或输出的任意组合 单独可配置的P1 和P2 中断 独立输入和输出数据寄存器 单独可配置的上拉或者下拉电阻器 单独可配置的引脚振荡器功能(某些MSP430 器件),二、通用数字端口的设置和操作,1、输入寄存器PxIN 当引脚被配置为I/O 功能时,PxIN 寄存器中的每个位反映相应I/O 引脚上输入信号的值。位= 0:输入为低电平位= 1:输入为高电平,2、输出寄存器PxOUT 当引脚被配置为I/O 功能,输出方向,和上拉/下拉电阻器被禁用时,每个PxOUT 寄存器中的每个位是相应I/O 引脚上将被输出的值位= 0:输出为低电平位= 1:输出位高电平

3、如果引脚上的上拉/下拉电阻器被启用,PxOUT寄存器中的相应位选择上拉或下拉电阻器。位= 0:引脚被下拉位= 1:引脚被上拉,3、方向寄存器PxDIR 每个PxDIR 寄存器中的每个位选择相应I/O 引脚的方向,这与为引脚选择的功能无关。被选择用于其它功能的I/O 引脚的PxDIR 位必须按照其它功能的要求进行设定。位= 0:端口引脚被切换至输入方向位= 1:端口引脚被切换至输出方向,4、上拉/下拉电阻器使能寄存器PxREN 每个PxREN 寄存器中的每个位启用或者禁用相应I/O 引脚的上拉/下拉电阻器。PxOUT 寄存器中的相应位选择是否上拉或下拉引脚。位= 0:上拉/下拉电阻器被禁用位=

4、1:上拉/下拉电阻器被启用,5、功能选择寄存器PxSEL 和PxSEL2 端口引脚通常与其它外设模块功能复用。请参见器件专用数据表来确定引脚功能。每个PxSEL 和PxSEL2位被用来选择引脚功能- I/O 端口或者外设模块功能。,设置PxSELx=1 不能自动设定引脚方向。其它外设模块功能也许要求PxDIRx 位被按照模块功能所需的方向进行配置。,6、P1 和P2 中断 端口P1 和P2 中的每个引脚都有中断功能,此功能由PxIFG,PxIE,和PxIES 寄存器配置。所有P1 引脚提供一个单一中断矢量,而所有P2 引脚提供一个不同的单一中断矢量。可测试PxIFG 寄存器来确定一个P1或P2

5、 中断的源。,1)中断标志寄存器P1IFG,P2IFG 每个PxIFGx 位是针对其相应I/O 引脚的中断标志,并且当被选择的输入信号边沿出现在引脚上时被置位。当它们相应的PxIE 位和GIE 位被置位时,所有PxIFGx 中断标志要求一个中断。每个PxIFG 标志必须由软件复位。软件也可设定每个PxIFG 标志,从而提供了一个生成软件初始中断的方法。位= 0:无中断等待位= 1:一个中断等待 只有转换,而非静态电平,导致中断。如果在一个Px 中断处理例程期间任何PxIFGx 标志被置位,或者在一个Px 中断处理例程的RETI 指令被执行后被置位的话,被置位的PxIFGx 标志生成另外一个中断

6、。这确保每个转换被确认。,注: 当改变PxOUT 或PxDIR 时的PxIFG 标志写入P1OUT,P1DIR,P2OUT,或P2DIR 可导致设置相应的P1IFG 或者P2IFG 标志。,2)中断边沿选择寄存器P1IES,P2IES每个PxIES 位位相应的I/O 引脚选择中断标志。位= 0:用一个低电平到高电平转换来设定PxIFGx 标志位= 1:用一个高电平到低电平转换来设定PxIFGx 标志,注: 写入PxIESx到P1IES,或者P2IES 的写入可导致相应中断标志的设置。PxIESx PxINx PxIFGx01 0 可被置位01 1 未改变10 0 未改变10 1 可被置位,3)

7、中断使能P1IE,P2IE每个PxIE 位启用相关的PxIFG 中断标志。位= 0:中断被禁用。位= 1:中断被启用。,P2口引脚0-5电路图这些引脚只具有一个数字内部功能模块,P1口引脚0-2电路图这些引脚具有模拟功能,系统比较复杂。,三、电容感测,当适当配置引脚功能时,引脚电路会形成一个由施密特触发器和弱上拉电阻与引脚分布电容形成的延迟电路组成的振荡器。引脚上的电容量不同,振荡频率不同,由此可以进行引脚电容的测量。 这个原理可以用来进行低成本的触摸应用。,以P20-P25引脚为例,当PxSEL.y=0、PxSEL2.y=1时,各处逻辑如图。,1,0,1,形成振荡器。振荡频率可有TA定时器测

8、量,例一、通过I/O口控制,实现每按动一次P1.3口的按键,使得P1.0口的LED改变状态。,#include /单括号和双引号的功能一致void main(void) WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timer P1DIR = 0x01; / P1.0 output, else input P1OUT = 0x08; / P1.3 set, else reset P1REN |= 0x08; / P1.3 pullup P1IE |= 0x08; / P1.3 interrupt enabled P1IES |= 0x08; / P1.3

9、Hi/lo edge P1IFG 。,/ Port 1 interrupt service routine#pragma vector=PORT1_VECTOR_interrupt void Port_1(void) P1OUT = 0x01; / P1.0 = toggle P1IFG / P1.3 IFG cleared,在本段示例程序中,先不用考虑I/O口的使用和中断问题,需要明白的是,当初始化完毕后,系统进入“死循环”之中,当检测外部按键时,则立即响应中断,将P1.0口取反,清除中断标志位,继续进入循环,直到下次中断来临为止,使得CPU只工作在循环和中断两种状态之中。,实验要求:1、 验证前面的示例程序。2.、设计一个程序,输入一个频率为f的方波,输出频率f/2、f/4的方波(2分频和4分频)。提示:在中断服务程序里,用一个变量加计数,根据变量奇偶性对输出的引脚进行取反。,

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报