这是我的程序,希望可以用P2.1按键控制红 {MOD}灯,用P1.1按键来控制绿 {MOD}灯。按下按键改变灯的状态。但是程序运行后按下按键无反应,灯始终为灭;使用单步调试,发现始终都无法进入if循环,无论是按键按下还是不按下。
如果有朋友知道,还请赐教。
#include <msp430.h>
void delay(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=1200;j>0;j--);
}
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // stop watchdog
timer
P1DIR |= BIT0; //P1.0左灯设为输出
P4DIR |= BIT7; //P4.7右灯设为输出
P1DIR |= ~BIT1; //设置P1.1为输入
P2DIR |= ~BIT1; //设置P2.1为输入
P1OUT &= ~BIT0;//熄灭P1.0
P4OUT &= ~BIT7;//熄灭P4.7 俩都改低。
while(1)
{
if(P1IN&BIT1)//判断P1.1
{
delay(10);//消除抖动
if(P1IN&BIT1)//判断P1.1
{
while(P1IN&BIT1);//p1.1摁下
P4OUT ^= BIT7; //灯反转
}
}
if(P2IN&BIT1)//判断P2.1
{
delay(10);//消除抖动
if(P2IN&BIT1)//判断P1.1
{
while(P2IN&BIT1);//p1.1摁下
P1OUT ^= BIT0; //灯反转
}
}
}
return 0;
}
一周热门 更多>