msp430f5529寄存器只读寄存器PxIN被改写后会发生什么

一、MSP430单片机的端口概述
P1~P6每组有8个I/O 口,P3,P4,P5,P6具有I/O,及其它片内外设功能,每组具有4个寄存器。P1,P2除具有上述功能外还具有中断能力,每组具有7个寄存器。
二、PX端口
1. P1,P2端口
(1)PxDIR 输入/输出方向寄存器(x代表1,2)
相互独立的八位分别定义了Px7~Px0,8个引脚的输入输出方向。
0 输入模式,只能读。
1 输出模式,可读可写。
8为在PUC后都被复位及置为0.
Eg:P1DIR=0X0F;
这里0X0F为16进制表示,对应的二进制为,即将P1DIR的高4位置0,低4位置1,也就是将P1.7,P1.6,P1.5,P1.4(P1的高4位)设置为输入模式将P1.3,P1.2,P1.1,P1.0(P1的低4位)设置为输出模式。
(2)PxIN 输入寄存器
每一位对应一个输入端口,如:第2位对应Px.2,记录着对应位输入的数据,0还是1.输入寄存器是只读寄存器,用户不能对它写入,只能从中读数据。
将P1输入的数据赋给a,也可以读取其中的一位或若干位。
eg: if((P1IN&0X01)==1) a=b;
这句话的意思是如果P1IN得最低位为1,即P1.0输入的是1,就将b赋给a;其中’&’意思是按位求与运算,即将P1IN中的8位数据和0x01按位求与运算。
(3)PxOUT输出寄存器
该寄存器为I/O端口的输出缓冲寄存器,每一位对应一个输出端口,如:第2位对应Px.2。用户向对应位写入数据,则对应的端口就会输出对应的数据。
P1OUT=0X01;
将P1OUT的最低位置1,其它位置0,即P1.7, P1.6 P1.5 P1.4 P1.3 P1.2 P1.1输出0, P1.0输出1;
P1OUT=BIT0;
通过查阅MSP430单片机的头文件我们可以知道BIT0就是0x01,说以这句话和上一句是等价的,之所以这样写,是为了使程序更易懂,更简洁。
(4)PxIFG中断标志寄存器
0 表示没有中断请求
1 表示有中断请求
中断标志PxIFG.0~ PxIFG.7共用一个中断向量,属于多源中断。当对应的I/O口有上升沿或下降沿出现时,对应的标志位会置位,如果中断允许而且系统总中断允许,则产生中断,并执行中断处理程序。
注意:1. PxIFG.0~ PxIFG.7被置位后,不会自动复位。必须用软件判定哪一个I/O有中断事件产生,并将相应的标志位复位。
2.外部中断事件的事件必须保持不低于1.5倍的MCLK 时间,以保证中断请求被接受,且使相应的中断标志置位。
(5)PxIE中断使能寄存器
0 禁止中断
1 允许中断
只有跳变才能引起中断请求,而静电平不能
(6)PxIES中断触发沿选择寄存器
0 上升沿使相应标志位置位
1 下降沿使相应标志位置位
(7)PxSEL功能选择寄存器
0 选择引脚为I/O功能
1 选择引脚为外围模块功能
单片机内还有丰富的外围模块,这些模块通常也需要和外界进行通信,但是单片机的引脚有限,故采用P1和P2引脚复用的方法来实现。
P5SEL |= 0x10; // P5.4 用作MCLK输出
2. 端口P3,P4,P5,P6
(1)端口P3,P4,P5,P6除没有中断能力外,其余功能和P1,P2相同,包括输入输出功能和外围模块功能。
(2)由于端口P3,P4,P5,P6没有中断能力,所以它们没有和中断相关的寄存器,每组端口有4个寄存器分别为:PxDIR 输入/输出方向寄存器,PxIN 输入寄存器,PxOUT输入寄存器,PxSEL功能选择寄存器。
三、端口COM和S
用来实现与液晶的直接接口,只有MSP430F4XX系列的单片机才有。
版主,为什么我的P1设置为输入后,明明输入低电平,为什么读出的却是1啊?&
在线时间355 小时
芯币4500枚
TA的帖子TA的资源
一粒金砂(中级), 积分 130, 距离下一级还需 70 积分
一粒金砂(中级), 积分 130, 距离下一级还需 70 积分
回复 楼主 tiankai001 的帖子
版主,为什么我的P1设置为输入后,明明输入低电平,为什么读出的却是1啊?
上拉?:puzzle:&
在线时间17 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 50, 距离下一级还需 150 积分
一粒金砂(中级), 积分 50, 距离下一级还需 150 积分
回复 沙发 chende815 的帖子
端口没上拉,找到问题,仿真器的问题,用仿真器调试程序,看端口状态怎么看怎么不对,直接上电执行程序就对了。尼玛耽误了两天时间:Mad:&
在线时间355 小时
芯币4500枚
TA的帖子TA的资源
一粒金砂(中级), 积分 130, 距离下一级还需 70 积分
一粒金砂(中级), 积分 130, 距离下一级还需 70 积分
回复 板凳 xin.yan 的帖子
端口没上拉,找到问题,仿真器的问题,用仿真器调试程序,看端口状态怎么看怎么不对,直接上电执行程序就对了。尼玛耽误了两天时间
资源大师勋章
在下载中心贡献超过4000份资料
EEWORLD 官方微信
Powered by
逛了这许久,何不进去瞧瞧?【大赛原创经验贴】正确理解PxDIR和PxIN、;第九单片机论坛网友原创精华来自网友空白;看到大家都在第九单片机论坛上发帖,分享自己的学习;不知道大家对Px口的这三个寄存器是怎么理解的,在;PxDIR是msp430单片机IO口的方向控制寄;当把某一位置0时,此时次端口为输入模式,;当把某一位置1时,此时次端口为输出模式,;1、当作为输出模式时,这是就可对其可
【大赛原创经验贴】正确理解PxDIR和PxIN、PxOUT之间的关系
第九单片机论坛 网友原创精华 来自网友 空白。
看到大家都在第九单片机论坛上发帖,分享自己的学习经验,让我收获颇大,感觉跟着你们的经验走,进步是比刚开始独自闷着看书要快啊。再次谢过各位了。
不知道大家对Px口的这三个寄存器是怎么理解的,在这里共享我的理解,如有不足,还望和大家一起讨论修改。
PxDIR是msp430单片机IO口的方向控制寄存器,
当把某一位置0时,此时次端口为输入模式,
当把某一位置1时,此时次端口为输出模式,
1、当作为输出模式时,这是就可对其可读可写了,通过对其写,就可以控制外围模块了。
2、当作为输入模式时,只能读它的状态,不能对起写入数据。
而PxIN和PxOUT分别是输入数据和输出数据寄存器。
程序应该先配置PxDIR为输入或输出才能对相应寄存器操作。
大家一定会想既然有了PxIN和PxOUT,为什么还要个PxDIR寄存器呢,直接对相应的寄存器操作就行了嘛,
我觉得是应为msp430单片机对输入输出的严格控制才这样设置的,
因为每一个端口在同一时间只能是输入或是输出状态的一种,
然后在根据具体是设置成什么状态,才能对相应的寄存器进行操作,这样更能精确的控制端口。
/****************************************比如下面这段1602显示液晶程序的等待繁忙标志函数程序:************************************/
/*******************************************
函数名称:Wait
能:等待1602液晶完成内部操作
********************************************/
void Wait(void)
P4DIR &= 0x00;// 将P4口切换成输入状态
while((P4IN & busy) != 0);//监测忙标志,此时为输入状态,只能对其端口进行读取状态,不能对其进行写操作
P4DIR |= 0xFF;//将P4口设置为输出状态,现在就可以对P4口进行读写操作了。
}//The end.
/***************************下面是一个简单的1602显示液晶的简单显示程序,可以进行验证实验。上面的程序包涵在下面的程序中的***************************************/
#include &msp430x14x.h&
typedef unsigned char uint8;
typedef unsigned int
void Delay_5ms(void);
void Wait(void);
void W_data(uint8 data);
void W_cmd(uint8 cmd,uint8 cmf);
void Init_1602(void);
void main( void )
/*关闭所有的IO口*/
P1DIR = 0xFF;P1OUT = 0xFF;
P2DIR = 0xFF;P2OUT = 0xFF;
P3DIR = 0xFF;P3OUT = 0xFF;
P4DIR = 0xFF;P4OUT = 0xFF;
P5DIR = 0xFF;P5OUT = 0xFF;
P6DIR = 0xFF;P6OUT = 0xFF;
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
Init_1602();
W_cmd(0xC0,1);
W_data('&')
/*******************************************
函数名称:Init_1602
能:对1602液晶模块进行复位、初始化操作
********************************************/
void Init_1602(void)
controlDIR |= 0x07;//控制线端口P3.0 P3.1 P3.2置高设置为输出状态
&= 0xFF;//数据线端口P4设置为输出状态
Delay_5ms();//规定的复位操作
W_cmd(0x38,0);
Delay_5ms();
W_cmd(0x38,0);
Delay_5ms();
W_cmd(0x38,0);
W_cmd(0x38,1);
W_cmd(0x08,1);
W_cmd(0x01,1);
W_cmd(0x06,1);
W_cmd(0x0C,1);
/*******************************************
函数名称:W_cmd
能:向液晶模块写入命令
数:cmd--命令,
chk--是否判忙的标志,1:判忙,0:不判
********************************************/
void W_cmd(uint8 cmd,uint8 cmf)
Wait();//等待繁忙标志
dataOUT =//讲命令写入数据端口
SET_EN;//使能脉冲信号
/******************************************* 函数名称:W_data
能:向液晶显示的当前地址写入显示数据 参
数:data--显示字符数据
********************************************/ void W_data(uint8 data)
Wait();//等待液晶不忙
dataOUT =//将显示数据写入数据端口
SET_EN;//使能脉冲信号
/******************************************* 函数名称:Wait
能:等待1602液晶完成内部操作
********************************************/ void Wait(void)
P4DIR &= 0x00;// 将P4口切换成输入状态
while((P4IN & busy) != 0);//监测忙标志
P4DIR |= 0xFF;//将P4口设置为输出状态
/******************************************* 函数名称:Delay_5ms
能:延时约5ms
********************************************/ void Delay_5ms(void)
uint16 i = 40000;
while (i != 0)
三亿文库包含各类专业文献、中学教育、外语学习资料、生活休闲娱乐、各类资格考试、文学作品欣赏、13正确理解MSP430的PxDIR和PxIN、PxOUT之间的关系等内容。 
 说明 (在 MSP430 小系统中数字电源地与模拟电源地必须通过 0 欧电阻连接起来...8 页 I/O 口的操作 P1~P6的公有寄存器位为PXSEL,PXDIR,PXOUT,PXIN。 其中...  具体引脚功能参考《MSP430 英文数据手册.pdf 》 8 页 2 I/O 口的操作 P1~P6的公有寄存器位为PXSEL,PXDIR,PXOUT,PXIN。 。 其中P1,P2相对于P3,P4 ,P5,...  2,IO 口的寄存器有:方向选择寄存器 PxDIR,输出寄存器 PxOUT,输入寄存器 PxIN,...//主要功能是比较两个输入信号的大小关系 #include &msp430g2553.h& void delay...  2,IO 口的寄存器有:方向选择寄存器 PxDIR,输出寄存器 PxOUT,输入寄存器 PxIN,...//主要功能是比较两个输入信号的大小关系 #include &msp430g2553.h& void delay...  MSP430F149的IO口_理学_高等教育_教育专区。MSP430程序c编写PxDIR 0 输入,1 输出; PxSEL 0 I/O 口,1 第二功能; PxOUT,PxIN; PxIES 设置中断触发方式 0...  输入输出端口输 入寄存器:P1IN,P2IN 输出寄存器:P1OUT,P2OUT 方向寄存器:P1DIR,P2DIR 功能选择寄存器:P1SEL,P2SEL 1.PxIN、PxOUT、PxDIR、PxSEL x 为端口号...  2,IO 口的寄存器有:方向选择寄存器 PxDIR,输出寄存器 PxOUT,输入寄存器 PxIN, ...//主要功能是比较两个输入信号的大小关系 #include &msp430g2553.h& void dela...  MSP430 单片机的端口介绍 MSP430 的端口有 P1,P2,P3,P4,P5,P6,S 和 COM(...P6 的 4 个寄存器(用法同 P1,P2) 分别为 PXDIR,PXIN,PXOUT,PXSEL 可供...  MSP430单片机的端口介绍_信息与通信_工程科技_专业资料...(用法同 P1,P2)分别为 PXDIR,PXIN, PXOUT,PXSEL...POR 和 PUC 两者的关系: POR 信号的产生会导致...MSP430f149端口功能及设置
16:15:11来源: 21IC
常用的端口有P1、P2、P3、P4、P5、P6,它们都可以直接用于输入/输出。系统中没有专门的输入/输出指令,输入/输出操作通过来实现。端口P1~P6的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。由于MSP的端口只有数据口,没有状态口或控制口,在实际应用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于“准备好”状态。
端口的功能:
(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口的输入信号。所以其引脚的方向要选为输入。如再键盘键盘扫描程序中经常要读取行线或者列线的端口寄存器值来判断案件情况。
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可供用户使用
关键字:&&&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
微信扫一扫加关注 论坛活动 E手掌握
微信扫一扫加关注
芯片资讯 锐利解读
大学堂最新课程
TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
msp430f449简介
下载积分:1000
内容提示:msp430f449简介
文档格式:PPT|
浏览次数:23|
上传日期: 02:18:27|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
msp430f449简介
官方公共微信}

我要回帖

更多关于 430 sr寄存器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信