打印

【转】msp430f149的 端口功能及设置

[复制链接]
594|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米尔豪斯|  楼主 | 2017-4-18 21:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSP430f149常用的的端口有P1、P2、P3、P4、P5、P6,它们都可以直接用于输入/输出。MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。端口P1~P6的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。由于MSP430的端口只有数据口,没有状态口或控制口,在实际应用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于“准备好”状态。

端口的功能:
(1)P1,P2端口: I/O,中断功能,其他片内外设功能如定时器、比较器;
(2)P3,P4P5P6端口:I/O,其他片内外设功能如SPI、UART模式,A/D转换等;
MSP430各端口具有丰富的控制寄存器供用户实现相应的操作。其中P1,P2具有7个寄存器,P3~P6具有4个寄存器。通过设置寄存器我们可以实现:
(1)每个I/O位独立编程;
(2)任意组合输入,输出和中断;
(3)P1,P2所有8个位全部可以用作外部中断处理;
(4)可以使用所以指令对寄存器操作;
(5)可以按字节输入、输出,也可按位进行操作。
端口P1,P2的功能可以通过它们的7个控制寄存器来实现。这里,Px代表P1或P2。
(1)PxDIR:输入/输出方向寄存器。 8位相互独立,可以分别定义8个引脚的输入/输出方向。8位再PUC后都被复位。使用输入/输出功能时,应该先定义端口的方向 。作为输入时只能读,作为输出时,可读可写。0:输入模式;1:输出模式。
如:P1DIR|=BIT4;   //P1.4输出 ,P2DIR=0XF0;   //高4位输出,低4位输入。
(2)PXIN:输入寄存器,为只读寄存器。用户不能对它进行写入,只能通过读取其寄存器的内容来知道I/O口的输入信号。所以其引脚的方向要选为输入。如再键盘键盘扫描程序中经常要读取行线或者列线的端口寄存器值来判断案件情况。
例如:unsigned char key;
P1DIR&=~BIT4;   //P1.4输入
……
key=P1IN&0X10;   //输出端口P1.4的值
……
(3)PXOUT:输出寄存器。该寄存器为I/O端口的输出缓冲寄存器,再读取时输出缓存的内容与引脚方向定义无关。改变方向寄存器的内容,输出缓存的内容不受影响。
如:PIOUT|=0X01;   //P1.0输出1 , PIOUT&=~0X01;   //P1.0输出0 。
(4)PXIFG:中断标志寄存器。他的8个标志位标志相应引脚是否有中断请求有待处理。0:无中断请求, 1:有中断请求。其中断标志分别为PXIFG.0~PXIFG.7。应该注意的是:PXIFG.0~PXIFG.7共用一个中断向量,为多源中断。当任一事件引起的中断进行处理时,PXIFG.0~PXIFG.7不会自动复位,必须由软件来判断是对哪一个事件,并将相应的标志复位。另外,外部中断事件的时间必须保持不低于1.5倍的MCLK时间,以保证中断请求被接受,且使相应中断标志位置位。
(5)PXIES:中断触发沿选择寄存器。如果允许PX口的某个引脚中断,还需定义该引脚的中断触发方式。0:上升沿触发使相应标志置位,1:下降沿触发相应标志置位。如:MOV.B #07H, &P1IES ;p1低3位下降沿触发中断。
(6)PXIE:中断使能寄存器。PX口的每一个引脚都有一位用以控制该引脚是否允许中断。0:禁止中断 ,1:允许中断。MOV.B #0E0H, &P2IE ;P2高3位允许中断。
(7)PXSEL:功能选择寄存器。P1,P2两端口还具有其他片内外设功能,将这些功能与芯片外的联系通过复用P1,P2引脚的方式来实现。PXSEL用来选择引脚的I/O端口功能与外围模块功能。0:选择引脚为I/O端口,1:选择引脚为外围模块功能。如:P1SEL|=0X10; //P1.4为外围模块功能。
       端口P3、P4、P5、P6没有中断能力,其余功能同PI,P2。除掉端口P1,P2与中断相关的3个寄存器,端口P3,P4,P5,P6的4个寄存器(用法同P1,P2)分别为PXDIR,PXIN,PXOUT,PXSEL可供用户使用。
    注:此文是根据网上相关的资料整理的

相关帖子

沙发
minzisc| | 2017-4-22 22:42 | 只看该作者
这个IO设置基本的 。

使用特权

评论回复
板凳
hudi008| | 2017-4-22 22:44 | 只看该作者
IO配置都是很简单。

使用特权

评论回复
地板
selongli| | 2017-4-22 22:45 | 只看该作者
中断有时候不能中断怎么?

使用特权

评论回复
5
xiaoyaodz| | 2017-4-22 22:45 | 只看该作者
怎么不使用msp430F5这类芯片?

使用特权

评论回复
6
isseed| | 2017-4-22 22:46 | 只看该作者
每个I/O位独立编程怎么实现的

使用特权

评论回复
7
mituzu| | 2017-4-22 22:46 | 只看该作者
如果中断不能退出是什么原因?

使用特权

评论回复
8
pmp| | 2017-4-22 22:47 | 只看该作者
配置上拉电阻模式有什么不同?

使用特权

评论回复
9
houjiakai| | 2017-4-22 22:47 | 只看该作者
推荐具备CAN功能芯片。

使用特权

评论回复
10
cehuafan| | 2017-4-22 22:48 | 只看该作者
下降沿触发相应标志置位之后怎么才能上升沿?

使用特权

评论回复
11
minzisc| | 2017-4-22 22:48 | 只看该作者
其他的msp430也有端口介绍吗

使用特权

评论回复
12
hudi008| | 2017-4-22 22:48 | 只看该作者
楼主有具体的说明吗?

使用特权

评论回复
13
selongli| | 2017-4-22 22:48 | 只看该作者
现在msp430f149功能都很齐全。

使用特权

评论回复
14
xiaoyaodz| | 2017-4-22 22:48 | 只看该作者
IO的PWM配置不是很容易

使用特权

评论回复
15
isseed| | 2017-4-22 22:48 | 只看该作者
每个I/O位独立编程是不是直接配置IO吗?

使用特权

评论回复
16
mituzu| | 2017-4-22 22:49 | 只看该作者
跟以前学习msp430差不多的。

使用特权

评论回复
17
pmp| | 2017-4-22 22:49 | 只看该作者
上拉电阻能够驱动多大?

使用特权

评论回复
18
houjiakai| | 2017-4-22 22:49 | 只看该作者
现在msp432就可以实现。

使用特权

评论回复
19
cehuafan| | 2017-4-22 22:49 | 只看该作者
信号反置会不会信号上升沿中断?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

731

帖子

1

粉丝