void display(uint k)
{
uchar bai,shi,ge;
bai = k / 100;
shi = k % 100 / 10;
ge = k % 10;
P0 = 0xff;
we = 1;
P0 = 0xfe;
we = 0;
du = 1;
P0 = table[bai];
du = 0;
delay(5);
P0 = 0xff;
we = 1;
P0 = 0xfd;
we = 0;
du = 1;
P0 = table[shi];
du = 0;
delay(5);
P0 = 0xff;
we = 1;
P0 = 0xfb;
we = 0;
du = 1;
P0 = table[ge];
du = 0;
delay(5);
}
void keyscan()
{ P3 = 0xf0;
if(P3 != 0xf0)
{ delay(10);//软件消抖
if(P3 != 0xf0)
{
switch(P3)
{ case 0xe0: k = 1; break;
case 0xd0: k = 2; break;
case 0xb0: k = 3; break;
case 0x70: k = 4; break; }
}
P3 = 0x0f;
switch(P3)
{ case 0x0e: k = k; break;
case 0x0d: k = k + 4; break;
case 0x0b: k = k + 8; break;
case 0x07: k = k + 12; break; }
while(P3 != 0x0f);//松手检测
}
}
void main ()
{ while(1)
{ keyscan();
display(k*k);