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);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
具体还得看整个程序吧。估计这里是返回一个空的,
一周热门 更多>