按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4Word格式文档下载.docx
《按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4Word格式文档下载.docx(7页珍藏版)》请在冰豆网上搜索。
//初始化子程序
voiddelay(uint);
//延时子程序
voiddisplay(uint);
//显示子程序
uintkeyscan();
//按键扫描子程序
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchartemp;
uintnum;
voidmain()
{
init();
while
(1)
display(keyscan());
}
voidinit()
num=0;
P2=0;
P1=0xff;
voiddelay(uintms)
uintx,y;
for(x=ms;
x>
0;
x--)
for(y=110;
y>
y--);
voiddisplay(uinta)
ucharbai,ge,shi;
if(a==0)
{
P2=0;
P1=0xff;
}
else
if(a<
10)
{
P2=table[a];
P1=0xfe;
}
elseif(a<
100)
shi=a/10;
ge=a%10;
P2=table[shi];
delay
(1);
P1=0xff;
P2=table[ge];
P1=0xfd;
1000)
bai=a/100;
shi=a%100/10;
P2=table[bai];
P1=0xfb;
uintkeyscan()
P3=0xfe;
temp=P3;
if(temp!
=0xfe)
delay(5);
temp=P3;
if(temp!
{
switch(temp)
{
case0xee:
num=1;
break;
case0xde:
num=4;
case0xbe:
num=9;
case0x7e:
num=16;
}
while(temp!
temp=P3;
P3=0xfd;
=0xfd)
case0xed:
num=25;
case0xdd:
num=36;
=0xf7)
returnnum;