MP430F5592 中断实现P1.1.按键的检测和响应
时间: 2023-12-15 07:03:51 浏览: 31
MP430F5592 是德州仪器(TI)生产的一款低功耗微控制器,以下是 P1.1 按键检测和响应的中断实现代码:
```c
#include <msp430.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器
P1DIR &= ~BIT1; // P1.1 设为输入模式
P1REN |= BIT1; // P1.1 上拉电阻使能
P1OUT |= BIT1;
P1IES |= BIT1; // P1.1 上升沿触发中断
P1IE |= BIT1; // P1.1 中断使能
_BIS_SR(GIE); // 全局中断使能
while(1)
{
// 待机模式
__bis_SR_register(LPM4_bits + GIE); // 进入低功耗待机模式
__no_operation(); // 空操作
}
}
#pragma vector=PORT1_VECTOR // P1中断服务函数
__interrupt void Port1_ISR(void)
{
P1IFG &= ~BIT1; // 清除P1.1中断标志位
// 按键被按下
if((P1IN & BIT1) == 0)
{
// 程序响应代码
__no_operation(); // 空操作
}
__bic_SR_register_on_exit(LPM4_bits); // 退出低功耗待机模式
}
```
以上代码中,`P1DIR` 指定 P1.1 为输入模式,`P1REN` 使能上拉电阻,`P1OUT` 设置上拉电阻为高电平。`P1IES` 设置中断触发方式为上升沿,`P1IE` 使能 P1.1 中断。`__bis_SR_register(LPM4_bits + GIE)` 进入低功耗待机模式。`__no_operation()` 是一个空操作函数,用于占位。`__bic_SR_register_on_exit(LPM4_bits)` 退出低功耗待机模式。