MSP430中断函数篇

发布者:之敖赵先生最新更新时间:2022-10-27 来源: csdn关键字:MSP430  中断函数  按键控制 手机看文章 扫描二维码
随时随地手机看文章

一、实现功能

利用中断函数实现按键控制LED,一按一灭的功能 。


二、运行内容

1、整体代码

#include "MSP430.h"

#include "IN430.h"

//#include "MSP430f5529.h"


int main( void )

{

  WDTCTL = WDTPW + WDTHOLD;

  /*初始LED*/

  P1DIR|=BIT0;

  P1OUT&=~BIT0;

  /*初始按键 输出*/

  P1DIR&=~BIT1;

  /*使能上拉 */

  P1REN |=BIT1;

  P1OUT |=BIT1;

   /*打开P1.0中断 */

  P1IE |=BIT1;

  /*设定下降沿触发 */

  P1IES |=BIT1;

  /*清除中断 */

  P1IFG&=~BIT1;

  /*打开全局中断 */

  _BIS_SR(GIE);

  while(1)

  {

 

  }

}

#pragma vector=PORT1_VECTOR

__interrupt void Port1_ISR()

{

  if(P1IFG & BIT1)//判断是否是P1.0产生的中断

  {

    P1IFG&=~BIT1;//中断标记位清零

    P1OUT ^=BIT0;//处理事件

  }

}


2、初始按键

按键是按下是低电平,故是从高电平往低电平走是作为一次判断按键按下标志,这就需要设定下降沿触发,因此为使能上来


  /*初始按键 输出*/

  P1DIR&=~BIT1;

  /*使能上拉 */

  P1REN |=BIT1;

  P1OUT |=BIT1;

   /*打开P1.0中断 */

  P1IE |=BIT1;

  /*设定下降沿触发 */

  P1IES |=BIT1;

  /*清除中断 */

  P1IFG&=~BIT1;


3、打开全局中断

在头文件#include "IN430.h"中找到打开全局中断的函数


_BIS_SR(GIE);


4、打开全局中断

中断服务函数例程如下,#pragma vector=中断向量(需要在所属MSP430单片机头文件找到中断向量函数)

__interrupt void 随便命名()


#pragma vector=PORT1_VECTOR

__interrupt void Port1_ISR()

{

  if(P1IFG & BIT1)//判断是否是P1.0产生的中断

  {

    P1IFG&=~BIT1;//中断标记位清零

    P1OUT ^=BIT0;//处理事件

  }

}

关键字:MSP430  中断函数  按键控制 引用地址:MSP430中断函数篇

上一篇:MSP430定时器、中断
下一篇:MSP430(0.96OLED)

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved