}
int scan()
{
int a;
P2=0xF0;
while(P2==0xF0);
delay_ms(10);
while(P2==0xF0);
{
switch(P2)
{
case 0x70:a=1;break;
case 0xB0:a=5;break;
case 0xD0:a=9;break;
case 0xE0:a=13;break;
}
P2=0x0f;
switch(P2)
{
case 0x0E:a=a;break;
case 0x0D:a=a+1;break;
case 0x0B:a=a+2;break;
case 0x07:a=a+3;break;
}
}
while(P2!=0x0f);
P21=0;/*復(fù)位*/
return a;
}
uchar recv_data(void) //接收數(shù)據(jù)
{
uchar date;
while(!RI); //等待接受完畢
RI=0;
if(RB8==1) //若當(dāng)前接收為地址幀則返回0xff
return 0xff;
date=SBUF;
while(!RI);
return date;
}