我是刚刚接触单片机的小白!
这是我自己按照别人思路写得一个程序,我想问一下大佬,在定义扫描按键函数的时候,如果函数“SM()”中,非0xFF, 不成立程序还会有返回值吗,或者继续往下运行吗?
#include<reg51.h>
#include<intrins.h>
#define LED P0
#define KEY P1
void max(int p)
{
int x,y;
for(x=p;x>0;x--)
for(y=99;y>0;y--);
}
//延时
int SM()
{
int i,zhi;
if(KEY!=0xFF)
{
max(1);
if(KEY!=0xFF)
{
zhi=KEY;
i=0;
while((i<50)&&(zhi!=0xFF))
{
i=i+1;
max(1);
}
}
}
return zhi;
}
//扫描按键
void main()
{
int led,key;
while(1)
{
key=SM();
switch(key)
{
case(0xFE):led=~0x0C;
break;
case(0xFD):led=~0xDB;
break;
case(0xFB):led=~0xF2;
break;
case(0xF7):led=~0x67;
break;
case(0xEF):led=~0xB6;
break;
case(0xDF):led=~0xBF;
break;
case(0xBF):led=~0xE0;
break;
case(0x7F):led=~0xFF;
break;
}
LED=led;
}
}