TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430端口配置入门【第一讲】

MSP430系列端口相关的寄存器有:PxDIR ,PxSEL ,PxOUT ,PxIN ,PxREN ,

PXIES ,PXIE ,PXIFG。下面分别进行介绍:

① PXSEL:端口特殊功能选择,例如P1SEL|=BIT3,即为选中P1.3的特殊功能,如果使用普通的输入输出功能,可以不设置,或者设置成P1SEL&=~BIT3。

②PXDIR:端口输入/输出寄存器。输出设置:P1DIR|=BIT3;输入设置:P1DIR&=~BIT3。其余的类似。

③PXOUT:端口输出寄存器。若想输出高电平,P1OUT|=BIT3;若想输出低电平,P1OUT&=~BIT3。

④PXIN:输入状态寄存器。可以读取相应端口的输入状态。

⑤PXREN:上拉电阻使能寄存器。如果想要使能相应端口的上拉电阻,只需要设置:P1REN|=BIT3。

⑥PXIES:端口触发寄存器。P1IES|=BIT3,下降沿触发;P1IES&=~BIT3,上升沿触发。

⑦PXIE:端口中断使能寄存器。P1IE|=BIT3,使能P1.3的中断。

⑧PXIFG:端口中断状态寄存器。用P1IFG&BIT3可以判断是哪一个端口触发了中断,同时需要在中断服务程序里软件清零。

端口连接按键,通过配置寄存器,根据按键的状态,进入中断服务程序选择执行相应的服务程序。实例如下:

//按键端口中断P1.3

//2017/4/8 

 

#include<msp430g2553.h>

 

void PORT_Interrupt_Init(void);

 

void main( void )

{

  WDTCTL = WDTPW + WDTHOLD;

 

  P1DIR|=BIT0;

 

  PORT_Interrupt_Init();

 

 

  while(1)

  {

   

  }

}

 

void PORT_Interrupt_Init()      //按键对应的端口初始化

{

  P1DIR&=~BIT3;                 //输入方向

  P1REN|=BIT3;                  //使能上拉电阻

  P1IFG=0X00;                   //清除中断标志

  P1IES|=BIT3;                  //下降沿触发

  P1IE|=BIT3;                   //开启端口中断

  _EINT();                      //开总中断

}

 

#pragma vector=PORT1_VECTOR     //端口中断服务程序

__interrupt void Key_ISR(void)

{

  if(P1IFG&BIT3)                //通过中断标志判断哪个端口触发

    P1OUT^=BIT0;

  P1IFG=0x00;                   //软件清除中断标志

}

 

       由此可得,在比较复杂的应用场合,可以添加多个按键,在中断服务程序中根据PXIFG的状态来判断具体是哪个端口引脚触发的中断,总体来说,使用方便,配置灵活。

灰小子:

感谢分享

赞(0)
未经允许不得转载:TI中文支持网 » MSP430端口配置入门【第一讲】
分享到: 更多 (0)