搜索
bottom↓
回复: 2

学习笔记整理——MSP430F149学习笔记之I/O口配置问题

[复制链接]

出0入0汤圆

发表于 2013-12-20 20:41:03 | 显示全部楼层 |阅读模式

   MSP430F1014单片机共计64个引脚,其中有六个端口(P1~P6),每个端口具有8个I/O口,共计48个I/O口。
MSP43f149端口功能:
端口                功能
P1、P2端口          IO口、中断、其它片内外设功能
P3~P6端口          IO口、其它片内外设功能
   MSP430F1014单片机具有丰富的寄存器供用户实现相应的操作,其中P1、P2端口具有七个寄存器,P3~P6端口具有四个寄存器。通过寄存器的配置我们可以实现如下功能:
1.每个IO口的独立编程。
2.任意组合的输入、输出和中断。
3.P1、P2端口的IO口都可以用作外部中断处理。
4.可以按字节输入、输出,或者按位操作。
  P1~P6端口共有的寄存器有方向寄存器(PxDIR)、输入寄存器(PxIN)、输出寄存器(PxOUT)和功能选择寄存器(PxSEL),P1、P2端口所特有的寄存器有:中断标志寄存器(PxIFG)、中断触发沿选择寄存器(PxIES)和中断使能寄存器(PxIE)。其中的x表示的是端口。
PxDIR:输入输出方向寄存器
  八位相互独立,可以分别定义各位的输入、输出方向,在PUC(上电清楚)信号后各位复位。使用输入输出功能时必须先设定输入\输出的方向。在输入模式时只能读,在输出模式时可读可写。
7        6        5        4        3        2        1        0
P7DIR        P6DIR        P5DIR        P4DIR        P3DIR        P2DIR        P1DIR        P0DIR

0:输入模式
1:输出模式
示例:
P1DIR|=BIT4;    //P1.4输出   
P4DIR|=0xF0;     //P4口高四位输出低、四位输入

PxIN:输入寄存器
        输入存储器为只读存储器,用户不能对它进行写入,只能读取其IO口的内容,此时引脚方向只能为输入。
7        6        5        4        3        2        1        0
PxIN        PxIN        PxIN        PxIN        PxIN        PxIN        PxIN        PxIN
示例:在键盘扫描程序中经常要读取行线或者列线的端口寄存器的值来判断案件情况如:unsigned char key;
P1DIR&=~BIT4;     //P1.4口输入。
… …
Key=P1IN&0x10;      //输出端口P1.4的值。
… …
PxOUT:输出寄存器
        该寄存器为I/O端口的输出缓冲寄存器,在读取时输出缓存的内容与引脚的方向定义无关,改变方向寄存器的内容,输出的缓存的内容不受影响。
7        6        5        4        3        2        1        0
P7OUT        P6OUT        P5OUT        P4OUT        P3OUT        P2OUT        P1OUT        P1OUT
示例:
P1OUT|=0x01;        //P1.0输出为1
P1OUT&=~0x01;        //P1.0输出为0
PxSEL:功能选择寄存器
        P1~P6端口都具有其他片内外设功能,将这些功能与芯片外的联系通过引脚的复用来实现。PxSEL用来选择端口的I/O功能与外围模块功能。
7        6        5        4        3        2        1        0
P7SEL        P6SEL        P5SEL        P4SEL        P3SEL        P2SEL        P1SEL        P0SEL

0:选择引脚为I/O口功能
1:选择引脚为外围模块功能
示例:P1SEL|=0x10;    //P1.4为外围模块功能
在不使用外围模块功能时PxSEL可不对其尽心任何操作,当使用外围模块功能时将对应的端口置0。当不使用外围模块功能时PxDIR、PxIN、PxOUT三个寄存器的关系总结如下表:
PxDIR        PxIN        PxOUT        I/O 口状态
0        1        /        读取I/O口的值
1        /        0        输出0
        /        1        输出1

P1、P2端口所特有的三个寄存器
PxIFG:中断标志寄存器
  它的八个标志标志相应引脚是否有中断请求有待处理。其中中断标志分别为PxIFG .0~ PxIFG .7。应该注意的是:PxIFG .0~ PxIFG .7共用一个中断向量,为多源中断。当任意事件引起的中断进行处理时,PxIFG .0~ PxIFG .7不会自动复位,必须由软件来判断是哪一个事件,并将相应的标志复位。另外外部中断事件的事件必须保持不低于1.5倍的MCLK时间,以保证中断请求被接受,且使响应中断标志置位。
7        6        5        4        3        2        1        0
P7IFG        P6IFG        P5IFG        P4IFG        P3IFG        P2IFG        P1IFG        P1IFG

  0:没有中断请求
  1:有中断请求
  示例:
PxIES:中断触发沿选择寄存器
  如果允许Px口的莫个引脚中断,还需要定义该引脚的中断触发方式(上升沿还是下降沿触发中断)。
7        6        5        4        3        2        1        0
P7IES        P6IES        P5IES        P4IES        P3IES        P2IES        P1IES        P1IES

  0:上升沿使相应标志置位
  1:下降沿使相应标志置位
  示例:P1IES = 0x0f;        // P1.0~P1.3选择下降沿中断
PxIE:中断使能寄存器
  Px口德每一个引脚都有一位用于控制该引脚是否允许中断。
7        6        5        4        3        2        1        0
P7IE        P6IE        P5IE        P4IE        P3IE        P2IE        P1IE        P1IE

  0:禁止中断
  1:允许中断
  示例:P1IE = 0x0f;       // 打开中断使能

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入12汤圆

发表于 2013-12-20 20:42:58 | 显示全部楼层
能不能整点跟得上时代的
比如5系,6系的
或者实用,性价比高的2系的
149,149,永远的149

出0入0汤圆

 楼主| 发表于 2013-12-20 20:44:36 | 显示全部楼层
额。。。这个是14年暑假集训的时候学习的,后来就去搞STM32了,430只是做TI比赛才用它的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 12:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表