#include <REGX52.H>
char key_16(){
unsigned char KeyNumber = 0;
/*第一列*/
P1 = 0xF7;
switch(P1){
case 0x77:
while(P1 == 0x77);
KeyNumber = 1;
break;
case 0xB7:
while(P1 == 0xB7);
KeyNumber = 5;
break;
case 0xD7:
while(P1 == 0xD7);
KeyNumber = 9;
break;
case 0xE7:
while(P1 == 0xE7);
KeyNumber = 13;
break;
}
/*第二列*/
P1 = 0xFB;
switch(P1){
case 0x7B:
while(P1 == 0x7B);
KeyNumber = 2;
break;
case 0xBB:
while(P1 == 0xBB);
KeyNumber = 6;
break;
case 0xDB:
while(P1 == 0xDB);
KeyNumber = 10;
break;
case 0xEB:
while(P1 == 0xEB);
KeyNumber = 14;
break;
}
/*第三列*/
P1 = 0xFD;
switch(P1){
case 0x7D:
while(P1 == 0x7D);
KeyNumber = 3;
break;
case 0xBD:
while(P1 == 0xBD);
KeyNumber = 7;
break;
case 0xDD:
while(P1 == 0xDD);
KeyNumber = 11;
break;
case 0xED:
while(P1 == 0xED);
KeyNumber = 15;
break;
}
/*第四列*/
P1 = 0xFE;
switch(P1){
case 0x7E:
while(P1 == 0x7E);
KeyNumber = 4;
break;
case 0xBE:
while(P1 == 0xBE);
KeyNumber = 8;
break;
case 0xDE:
while(P1 == 0xDE);
KeyNumber = 12;
break;
case 0xEE:
while(P1 == 0xEE);
KeyNumber = 16;
break;
}
return KeyNumber;
}