求助各位高手,帮忙解释一下这个程序,详细点更好,还有后面的while(!s3);语句,一直看不明白什么意思。

void keycan1()
{
uint i;
if(s3==0)
{
delay(30);
if(s3==0)
{ i++;
switch(i)
{
case 1:
P2=0x7f;
break;
case 2:
P2=0xbf;
break;
case 3:
P2=0xdf;
break;
case 4:
P2=0xef;
break;
case 5:
P2=0xf7;
break;
case 6:
P2=0xfb;
break;
case 7:
P2=0xfd;
break;
case 8:
P2=0xfe;
break;
default:i=0;
}
while(!s3);
}
}

void keycan1()
{
uint i; //声明一个unsigned int类型的变量i
if(s3==0)
{
delay(30); //当S3等于0的时候执行延时函数delay(30);
if(s3==0)
{ i++; //当S3等于0的时候i的值加1
switch(i)
{
case 1: //根据I的值来选择将赋予P216进制的数据
P2=0x7f;
break;
case 2:
P2=0xbf;
break;
case 3:
P2=0xdf;
break;
case 4:
P2=0xef;
break;
case 5:
P2=0xf7;
break;
case 6:
P2=0xfb;
break;
case 7:
P2=0xfd;
break;
case 8:
P2=0xfe;
break;
default:i=0;
}
while(!s3); //当!S3为真的时候,即S3为假的时候执行空语句
}
}追问

那么这条语句有何没有对整个程序有没有影响呢?

追答

没有吧,说实话,我也感觉这个程序写的很奇怪

追问

呵呵,谢谢你!我刚才看了一下,这个程序是用来等待外接按钮的改变的!

温馨提示:答案为网友推荐,仅供参考