当前位置:首页 > 单片机 > 单片机
[导读]这一篇文章将说明MSP430G2553的IO中断配置,整个P1的IO都可以配置IO中断,但中断处理函数只有一个,MSP430和大多数MCU一样提供上升沿、下降沿选择。在Launchpad上有按键S2,接在P1.3口,当按下后P1.3将接入高电平,从

这一篇文章将说明MSP430G2553的IO中断配置,整个P1的IO都可以配置IO中断,但中断处理函数只有一个,MSP430和大多数MCU一样提供上升沿、下降沿选择。

在Launchpad上有按键S2,接在P1.3口,当按下后P1.3将接入高电平,从而触发中断。

所有寄存器的具体名称和地址,可以查看M430G2553 datasheet 第 21页中对于P1的寄存器定义


在实例代码中,配置了P1.3和P1.6的LED灯,当按下P1.3的按键产生中断,LED灯将切换点亮

1.按键的中断配置

要配置按键中断,需要先设置P1.3口为输入,并且设置上拉电阻以保障稳定性,

P1DIR &= ~BIT3;//设置P1.3为输入
P1REN |= BIT3;//启用P1.3电阻

在启用电阻后,由P1OUT来配置下拉还是上拉
P1OUT |= BIT3;//设置上拉电阻

通过P1IES寄存器设置上升沿,0为下降沿
P1IES |= BIT3;//P1.3中断边缘选择


需要对P1的中断进行使能,除了这里还有总中断需要使能(在main函数中)
P1IE |= BIT3;//P1.3中断使能

=====================================================================

2.中断处理函数

在中断处理函数中处理LED程序

编译器指示
#pragma vector=PORT1_VECTOR


__interrupt void PORT1_ISR(void)
{

delay(100);//约100ms
P1OUT ^= (1<<6);//反向P1.0和P1.6
P1OUT ^= (1<<0);
P1IFG = 0;//清除中断标识

}







=====================================================================





源代码:

//P1.0---------Red Led
//P1.3---------Button
//P1.6---------Green Led

#include "msp430g2553.h"



//名称:delay(int time)
//功能:延时程序
void delay(int time)
{
static int i,j;


for(i=0;i
for(j=0;j<100;j++)
{
}
}


//名称:InitLed()
//功能:初始化LED
void InitLed()
{
P1DIR |= BIT0+BIT6;//设置BIT0和BIT6为输出
P1OUT &= ~0x01; //设置BIT0和BIT6低电平
P1OUT |= 0x40; //设置BIT0和BIT6低电平
}



//名称:InitIOInterrupt()
//功能:初始化P1的按键中断配置
void InitIOInterrupt()
{
P1DIR &= ~BIT3;//设置P1.3为输入
P1REN |= BIT3;//启用P1.3电阻
P1OUT |= BIT3;//设置上拉电阻
P1IES |= BIT3;//P1.3中断边缘选择
P1IE |= BIT3;//P1.3中断使能
P1IFG = 0x00;//清除中断标识
}





//名称:PORT1_ISR(void)
//功能:按键中断的处理函数
#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{

delay(100);//约100ms
P1OUT ^= (1<<6);
P1OUT ^= (1<<0);
P1IFG = 0;//清除中断标识

}

int main( void )
{
WDTCTL = WDTPW + WDTHOLD;
InitLed();//初始化LED端口
InitIOInterrupt();//初始化IO中断
_EINT();//开总中断
while(1);
return 0;
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

MCS-51单片机有两个外部中断源INT0和INT1,它们分别在P3.2和P3.3引脚出现低电平或下降沿信号时向单片机发出中断请求。外部中断可用于检测单片机外部发生的事件,如键盘敲击和特定脉冲发生的次数等。

关键字: 51单片机 外部中断

外部中断是单片机实时地处理外部事件的一种机制。具体指的是,当某种外部事件发生时,单片机的中断系统迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后,又返回被中断的程序处,继续执行下去。这里我们以Nuc...

关键字: MCU 外部中断 ST

STM32CubeMX是官方推荐的配置软件,而HAL库也是取代之前的库函数的通用库,所以STM32CubeMX+HAL库是当前主流的工程创建方式,HAL库的可移植性也高于被取代的库函数。 之前在[程序员小哈]的公众号中写...

关键字: LED 外部中断

  关于智能家居,今年在行业内掀起的热潮一浪高过一浪,无疑,今年是智能家居爆发的一年,但是对于智能家居的实际状况,还是有很多令人担忧的地方,其中行业标准确实就是重要的一点。各企业在角逐智能家居市

关键字: MCU msp430g2553 电机控制

什么是Hirose IX Industrial系列I/O连接器?它有什么作用?最新半导体和电子元件的全球授权分销商贸泽电子即日起开始备货Hirose Electric Company的IX Industrial系列I/O...

关键字: io 贸泽 连接器

皮尔磁:PSS4000为客户实现卓越的卫生设备生产性能   在中国智能制造2025计划的影响下,随着技术能力的不断提升,越来越多的中国公司成功凭借高质量、可靠性较高的设备获得了国际市

关键字: io plc pss

在这篇文章中,小编将为大家带来微星MEG Z490 GODLIKE主板的背部I/O接口进行介绍,一起来了解下吧。

关键字: io z490 微星

——魏德米勒u-remote远程I/O在烟草物流分拣设备的应用

关键字: io u-remote 电气联接

随着工业自动化技术的不断发展,分布式I/O作为系统的重要组件,在工业现场已有大规模的应用。

关键字: io 分布式 魏德米勒

5月7日消息,Google正式发布了针对Android 11的预告视频,并发布了每个版本的Android 11的发布时间表。Android11Beta版将在6月3日的在线会议上正式发布。

关键字: 11 Android io 谷歌
关闭
关闭