msp430单片机外部中断

2025-05-22 20:21:29

1、查阅msp430x2xx系列单片机说明书,了解到msp430单片机所有的P1、P2口都可以配置为中断方式,P1口所有引脚共用一个中断向量,P2口所有引脚共用一个中断向量。PxIFG记录中断触发信号,当P1/P2口某引脚触发时,置位PxIFG相应位。比如P1.0中断触发,在P1IFG的BIT0就会置位为1,其余为均为0.

2、msp430单片机引脚多具有复用功能,默认上电复位后引脚配置为通用IO,如果要使用引脚中断,需要配置寄存器使能相应位,与引脚中断配置相关寄存器主要有PxIE、PxIES、PxIFG。

3、PxIE寄存器引脚中断使能寄存器,置位该寄存器中某位,使能该引脚中断触发功能。如果复位,则禁止该引脚功能,比如置位P1IE中BIT3则使能P1.3中断触发功能。

msp430单片机外部中断

4、PxIES寄存器中断触发信号寄存器,用于中断触发信号的选择。复位该位则设置中断触发信号为上升沿触发;置位该位则选择中断触发信号为下降沿触发。

msp430单片机外部中断

5、PxIFG寄存器在设置完PxIE与PxIES寄存器之后,需清除PxIFG寄存器对应位,开启系统中断GIE就可以了。

msp430单片机外部中断

6、中断服务程序配置完引脚中断后,需要编写中断服务程序。与其它中断服务程序一样,设置中断向量,编写中断服务程序,需要注意的时,在中断服务程序里需要判断是那个引脚中断,并要清除中断标志位。

7、示例代码如下:#include <msp430.h>int main( void ){ WDTCTL 租涫疼迟= WDTPW + WDTHOLD; P1DIR = BIT0 + BIT6 ; P1OUT &= ~(BIT0 + BIT6); P1IE |= BIT3; P1IES |= BIT3; P1IFG &= ~BIT3; //P1.3 input interrupt configurate _EINT(); while(1);}// P1 interrupt service#pragma vector =PORT1_VECTOR__interrupt void Port1_ISR(void){ if((P1IFG|0xf7) == 0xff) { P1IFG &= ~BIT3; P1OUT ^= BIT6; } P1OUT |= BIT0;}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢