}
while((P3&0xf0)!=0xf0);//判断键是否抬起
}
switch(Row+Col){
case 0xee:key=0;
P1=0Xfe;delay(100);P1=0xfd;delay(100);P1=0Xfb;delay(100);P1=0xf7;delay(100);
P1=0Xef;delay(100);P1=0xdf;delay(100);P1=0Xbf;delay(100);P1=0x7f;delay(100);
break;
case 0xde:key=1;P1=0xff;break;
case 0xbe:key=2;P1=0xff;break;
case 0x7e:key=3;P1=0xff;break;
case 0xed:key=4;P1=0xff;break;
case 0xdd:key=5;P1=0xff;break;
case 0xbd:key=6;P1=0xff;break;
case 0x7d:key=7;P1=0xff;break;
case 0xeb:key=8;P1=0xff;break;
case 0xdb:key=9;P1=0xff;break;
case 0xbb:key=10;
P1=0X7f;delay(100);P1=0xbf;delay(100);P1=0Xdf;delay(100);P1=0xef;delay(100);
P1=0Xf7;delay(100);P1=0xfb;delay(100);P1=0Xfd;delay(100);P1=0xfe;delay(100);
break;
case 0x7b:key=11;P1=0xff;break;
case 0xe7:key=12;P1=0xff;break;
case 0xd7:key=13;P1=0xff;break;
case 0xb7:key=14;P1=0xff;break;
case 0x77:key=15;P1=0xff;break;
}
return key;
}
void main()
{
unsigned key1;
while(1)
{
key1=keyscan();
P2=table[key1];