📄 key.c
字号:
/*****************************************************************************\
文件名:key.c
编写者:czhang
描述:使用P1.5、P1.6两个I/O口接按键。
版本:1.0 2004-5-10
\*****************************************************************************/
#include <MSP430x14x.h>
#include "key.h"
//选用端口定义
#define KEYDIR P1DIR
#define KEYIES P1IES
#define KEYIE P1IE
#define KEYIN P1IN
#define KEYIFG P1IFG
//定义键盘管脚
#define KEY0 BIT5
#define KEY1 BIT6
#define SET_GIE __bis_SR_register(GIE) //置位全局中断控制位
/*****************************************************************************
初始化
*****************************************************************************/
void InitKey()
{
KEYDIR &= ~(KEY0+KEY1); //设置端口为输入
KEYIES |= KEY0+KEY1; //设置下降沿中断
KEYIE |= KEY0+KEY1; //打开端口中断
}
/*****************************************************************************
端口1中断函数
多中断中断源:P1IFG.0~P1IFG7
******************************************************************************/
#pragma vector=PORT1_VECTOR
__interrupt void Port1()
{
static unsigned char biaozhi=0;
if((P1IFG&BIT5) ==BIT5)
{
//处理P1IN.5中断
SET_GIE;
P1IFG &= ~BIT5; //清除中断标志
biaozhi=1;
while(biaozhi==1);
}
else if((P1IFG&BIT6) ==BIT6)
{
//处理P1IN.6中断
P1IFG &= ~BIT6; //清除中断标志
biaozhi=0;
}
else
{
P1IFG =0;
}
LPM3_EXIT; //退出中断后,退出低功耗模式。若退出中断后希望保留低功耗模式,需
//将本句屏蔽
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -