P2=table[ge];//显示个位
D2=0;
delay(5);
D2=1;
}
/*----------------------------------------------------------------------------------
矩阵键盘
----------------------------------------------------------------------------------*/
void keyscan()
{
uchar temp,n,k;
n=0x7f;
for(k=0;k<8;k++)
{
P0=n;
temp=P1&0xff;
if(temp!=0xff)
{
delay(3);
temp=P1&0xff;
if(temp!=0xff)
{
temp=P1;
if(n==0x7f)
{
switch(temp)
{
case 0xfe:num=1;break;
case 0xfd:num=9;break;
case 0xfb:num=17;break;
case 0xf7:num=25;break;
case 0xef:num=33;break;
case 0xdf:num=41;break;
case 0xbf:num=49;break;
case 0x7f:num=57;break;
}
}
if(n==0xbf)
{
switch(temp)
{
case 0xfe:num=2;break;
case 0xfd:num=10;break;
case 0xfb:num=18;break;
case 0xf7:num=26;break;
case 0xef:num=34;break;
case 0xdf:num=42;break;
case 0xbf:num=50;break;
case 0x7f:num=58;break;
}
}
if(n==0xdf)
{
switch(temp)
{
case 0xfe:num=3;break;
case 0xfd:num=11;break;
case 0xfb:num=19;break;
case 0xf7:num=27;break;
case 0xef:num=35;break;
case 0xdf:num=43;break;
case 0xbf:num=51;break;
case 0x7f:num=59;break;
}
}
if(n==0xef)
{
switch(temp)
{
case 0xfe:num=4;break;
case 0xfd:num=12;break;
case 0xfb:num=20;break;
case 0xf7:num=28;break;
case 0xef:num=36;break;
case 0xdf:num=44;break;
case 0xbf:num=52;break;
case 0x7f:num=60;break;
}
}
if(n==0xf7)
{
switch(temp)
{
case 0xfe:num=5;break;
case 0xfd:num=13;break;
case 0xfb:num=21;break;
case 0xf7:num=29;break;
case 0xef:num=37;break;
case 0xdf:num=45;break;
case 0xbf:num=53;break;
case 0x7f:num=61;break;
}
}
if(n==0xfb)
{
switch(temp)
{
case 0xfe:num=6;break;
case 0xfd:num=14;break;
case 0xfb:num=22;break;
case 0xf7:num=30;break;
case 0xef:num=38;break;
case 0xdf:num=46;break;
case 0xbf:num=54;break;
case 0x7f:num=62;break;
}
}
if(n==0xfd)
{
switch(temp)
{
case 0xfe:num=7;break;
case 0xfd:num=15;break;
case 0xfb:num=23;break;
case 0xf7:num=31;break;
case 0xef:num=39;break;
case 0xdf:num=47;break;
case 0xbf:num=55;break;
case 0x7f:num=63;break;
}
}
if(n==0xfe)
{
switch(temp)
{
case 0xfe:num=8;break;
case 0xfd:num=16;break;
case 0xfb:num=24;break;
case 0xf7:num=32;break;
case 0xef:num=40;break;
case 0xdf:num=48;break;
case 0xbf:num=56;break;
case 0x7f:num=64;break;
}
}
while(temp!=0xff)
{
temp=P1&0xff;
}
}
}
n=_cror_(n,1);
}
}