本帖最后由 eehome 于 2013-1-5 10:09 编辑
#include "msp430g2553.h"
#define uchar unsigned char
#define uint unsigned int
#define anjian (P1IN & 0x01)
char keycan(void);
int main( void )
{
// Stop watchdog
timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1DIR &=~BIT0;//p1.0设为输入
P1REN = BIT0;
P1DIR |=BIT1; //p1.1设为输出
P1OUT &= ~BIT1;
while(1)
{
if(keycan())//判断按键是否按下;
{
P1OUT ^=BIT1;
}
}
}
char keycan(void)
{
uint i,t=0;
if(anjian != 0x01)
{
for(i=0;i<250;i++);//延时一段时间,消除按键抖动
if (anjian != 0x01) //如果P1输入寄存器P1IN的第0位还是0,则返回1,表示按键按下
{
while(anjian != 0x01);
t=1;
}
}
return t;
}
按键没反应,一个键盘控制一个LED,按一下亮再按一下灭