#include <reg52.h>
#include <intrins.h>
#include <shuma.h>
void Delay10ms(void) //@11.0592MHz
{
unsigned char data i, j;
i = 18;
j = 235;
do
{
while (--j);
} while (--i);
}
unsigned char h,l;
unsigned char keyscan(){
P3 = 0xf0;
if(P3 != 0xf0){
Delay10ms();
if(P3 != 0xf0){
l = P3 ;
P3 = 0x0f;
h = P3 ;
while(P3 != 0x0f); //如若按键按着不动则代码将停在这
}
}
return(l + h);
}
unsigned char keynum(){
unsigned char sum = 0;
switch(keyscan()){
case 0xee : sum = 16; break;
case 0xde : sum = 15; break;
case 0xbe : sum = 14; break;
case 0x7e : sum = 13; break;
case 0xed : sum = 12; break;
case 0xdd : sum = 11; break;
case 0xbd : sum = 10; break;
case 0x7d : sum = 9; break;
case 0xeb : sum = 8; break;
case 0xdb : sum = 7; break;
case 0xbb : sum = 6; break;
case 0x7b : sum = 5; break;
case 0xe7 : sum = 4; break;
case 0xd7 : sum = 3; break;
case 0xb7 : sum = 2; break;
case 0x77 : sum = 1; break;
}
return sum;
}