MSP430入门教程专题(六)——IO中断方式按键检测
//以下是结合MC430F14开发板来实现的按键检处理程序实验.
//分别使用了采个三个按键接到MSP430的通用IO口,按任意一个按键可以使板上的LED反转.
//例程中,单片机一直处于最低功耗状态,用户可以通过按下按键后唤醒单片机.单片机唤醒
//后再进行去抖动动作.同时执行键处理程序.处理完后再次进入LPM4低功耗模式.
//在本程序中用户可以灵活地修改程序来实现你相关的功能.
//本程序适用在手持设备或电池供电的设计中.此程序结构比较通用,级用户可参与或套用修改.
//应用目标板:MC430F14x开发板
#include <msp430x14x.h>
#define key1 0x01
#define key2 0x02
#define key3 0x04
#define delay_small 200
#define key_1 0xfe
#define key_2 0xfd
#define key_3 0xfb
void key_process_0(void);
void key_process_1(void);
void key_process_2(void);
void key_check (void);
unsigned char key_value;
//*************************************************************************
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
P1OUT |= BIT1;
LPM4;
while(1)
{
}
}
//*************************************************************************
//P2中断服务程序
#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{
switch (P2IFG)
}
//*************************************************************************
void key_process_0(void)
{
P1OUT ^= BIT1;
}
//*************************************************************************
void key_process_1(void)
{
P1OUT ^= BIT1;
}
//*************************************************************************
void key_process_2(void)
{
P1OUT ^= BIT1;
}
//**************************************************************************
void key_check (void)
{ unsigned int i;
for(i=0;i
if(0xff !=(P2IN & 0xf8))
else
}
//**************************************************************************
//如果在按键电路中加RC滤波电路,实现按键去抖动的效果会更显著此.
评论