uchar Keyboard_Scan(void)
{
uchar scancode,tmpcode;
P2=0xf0;
while(P2==0xf0); //等待有键按下
Delay_1ms(20); //延时10ms去抖动
if(P2!=0xf0)
{ scancode=0xfe; //逐行扫描
while(scancode!=0xef) //还没有扫描完4行
{
P2=scancode;
if((P2&0xf0)!=0xf0) //本列有键按下
{
tmpcode=(P2&0xf0)|(scancode&0x0f);
while((P2&0xf0)!=0xf0); //等待键释放
return(tmpcode);
}
else scancode=(scancode<<1)|0x01;
}
}
return(0);
}
从程序看这个返回值代表没有按键按下。 return (0); 与 return 0; 是等价的,返回个0而已,返回值你应该懂吧。。