51单片机中的if-else if套嵌,下面的else if中的语句怎么执行不了啊
#include<reg52.h>#include<key_iden.h>unsignedinti,m;main(){m=0x40;//0100000P0=0xff;P2...
#include <reg52.h>
#include <key_iden.h>
unsigned int i,m;
main()
{
m=0x40;//0100000
P0=0xff;
P2=0xff;
while(1)
{
if(Key_swept(0)) //判断按键1是否按下
if(P2==0xff&P0==0xff) //如果P0,P2 都不亮
{P2=0x7f;m=0x40; } //将0x7f赋给P2,m重置为0x40;
else if(P2!=0xff&P2!=0xfe) //如果P2有一个LED亮了而且不是最后一个LED亮的
{P2=~m; m>>=1;} //将m值赋予P2,然后向右移动
else if(P2==0xfe) //如果P2最后一位亮了
{P2=0xff;P0=0x7f;m=0x40;} //将P2灭掉,P0第一个LED点亮 然后右移
else if(P0!=0xff) //如果P0有一个亮了
{P0=~m;m>>=1;} //将m值赋予P0,然后右移
else if(P0==0xfe) //如果P0最后一个LED亮。
{P0=0xff;P2=0x7f;} //将P0灭掉,P2第一个LED点亮
//下面的语句无法执行,求高手指教。
else // if(Key_swept(1)) //判断按键2是否按下
{ if(P2!=0xff&P0==0xff) //如果P2有亮的LED,P0没有亮
{P2=0x00;} //将P2全部点亮
}
}
}
上面的问题简述如下:
if(Key_swept(0)) //判断按键1是否按下
{
if()
{}
else if()
{}
else if()
{}
}
else if()
{} //这句没有执行,为什么? 展开
#include <key_iden.h>
unsigned int i,m;
main()
{
m=0x40;//0100000
P0=0xff;
P2=0xff;
while(1)
{
if(Key_swept(0)) //判断按键1是否按下
if(P2==0xff&P0==0xff) //如果P0,P2 都不亮
{P2=0x7f;m=0x40; } //将0x7f赋给P2,m重置为0x40;
else if(P2!=0xff&P2!=0xfe) //如果P2有一个LED亮了而且不是最后一个LED亮的
{P2=~m; m>>=1;} //将m值赋予P2,然后向右移动
else if(P2==0xfe) //如果P2最后一位亮了
{P2=0xff;P0=0x7f;m=0x40;} //将P2灭掉,P0第一个LED点亮 然后右移
else if(P0!=0xff) //如果P0有一个亮了
{P0=~m;m>>=1;} //将m值赋予P0,然后右移
else if(P0==0xfe) //如果P0最后一个LED亮。
{P0=0xff;P2=0x7f;} //将P0灭掉,P2第一个LED点亮
//下面的语句无法执行,求高手指教。
else // if(Key_swept(1)) //判断按键2是否按下
{ if(P2!=0xff&P0==0xff) //如果P2有亮的LED,P0没有亮
{P2=0x00;} //将P2全部点亮
}
}
}
上面的问题简述如下:
if(Key_swept(0)) //判断按键1是否按下
{
if()
{}
else if()
{}
else if()
{}
}
else if()
{} //这句没有执行,为什么? 展开
3个回答
展开全部
你的嵌套的第一个if后面的属于这个if的语句加上大括号!注意代码的可读性,美观性,也方便自己调试程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每次写完一次if就要用else了,那你那样子写也不够规范,写得有些乱,建议看一下人家的规范化编程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询