【按下16个矩阵键盘依次在数码管上显示1-16的平方.如按下第一个显示1,第二个显示4...#include#defineucharunsignedchar#defineuintunsignedintucharb,bai,shi,ge;ucharconstel[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7】
按下16个矩阵键盘依次在数码管上显示1-16的平方.如按下第一个显示1,第二个显示4...
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharb,bai,shi,ge;
ucharconstel[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
x09x09x090x77,0x7c,0x39,0x5e,0x79,0x71};
ucharkeycan(void);
voiddelay(uintz);
voiddisplay(ucharbai,ucharshi,ucharge);
voidmain()
{
ucharkey;
P0=0x00;
while(1)
{
x09key=keycan();
x09switch(key)
x09{
x09case0xee:b=1*1;break;
x09case0xde:b=2*2;break;
x09case0xbe:b=3*3;break;
x09case0x7e:b=4*4;break;
x09case0xed:b=5*5;break;
x09case0xdd:b=6*6;break;
x09case0xbd:b=7*7;break;
x09x09case0x7d:b=8*8;break;
x09x09case0xeb:b=9*9;break;
x09x09case0xdb:b=10*10;break;
x09x09case0xbb:b=11*11;break;
x09x09case0x7b:b=12*12;break;
x09x09case0xe7:b=13*13;break;
x09x09case0xd7:b=14*14;break;
x09case0xb7:b=15*15;break;
x09x09case0x77:b=16*16;break;
x09}
x09bai=b/100;
x09shi=b%100/10;
x09ge=b%10;
x09display(bai,shi,ge);
}
}
ucharkeycan()
{
ucharcord_h,cord_l;
P3=0x0f;
cord_h=P3&0x0f;
if(cord_h!=0x0f)
{
delay(100);
x09cord_h=P3&0x0f;
x09if(cord_h!=0x0f)
x09{
x09P3=cord_h|0xf0;
x09cord_l=P3&0xf0;
x09return(cord_h+cord_l);
x09}
}return(0xff);x09
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voiddisplay(ucharbai,ucharshi,ucharge)
{
P2=0;x09
P0=el[bai];
delay(10);
P2=1;
P0=el[shi];
delay(10);
P2=2;
P0=el[ge];
delay(10