按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx

上传人:b****6 文档编号:6038591 上传时间:2023-01-03 格式:DOCX 页数:7 大小:60.44KB
下载 相关 举报
按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx_第1页
第1页 / 共7页
按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx_第2页
第2页 / 共7页
按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx_第3页
第3页 / 共7页
按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx_第4页
第4页 / 共7页
按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx

《按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx》由会员分享,可在线阅读,更多相关《按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx(7页珍藏版)》请在冰豆网上搜索。

按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx

按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4

按下16个矩阵键盘依次在数码管上显示1-16的平方。

如按下第一个显示1-第二个显示4...

按下16个矩阵键盘依次在数码管上显示1-16的平方。

如按下第一个显示1,第二个显示4...

Proteus仿真时,用的是元件库自带的矩阵键盘,分别代表1-16,仿真图如下:

#include

#defineuintunsignedint

#defineucharunsignedchar

voidinit();//初始化子程序

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>0;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];

P1=0xfe;

delay

(1);

P1=0xff;

P2=table[ge];

P1=0xfd;

delay

(1);

P1=0xff;

}

elseif(a<1000)

{

bai=a/100;

shi=a%100/10;

ge=a%10;

P2=table[bai];

P1=0xfe;

delay

(1);

P1=0xff;

P2=table[shi];

P1=0xfd;

delay

(1);

P1=0xff;

P2=table[ge];

P1=0xfb;

delay

(1);

P1=0xff;

}

}

}

uintkeyscan()

{

P3=0xfe;

temp=P3;

if(temp!

=0xfe)

{

delay(5);

temp=P3;

if(temp!

=0xfe)

{

switch(temp)

{

case0xee:

num=1;break;

case0xde:

num=4;break;

case0xbe:

num=9;break;

case0x7e:

num=16;break;

}

}

while(temp!

=0xfe)

temp=P3;

}

P3=0xfd;

temp=P3;

if(temp!

=0xfd)

{

delay(5);

temp=P3;

if(temp!

=0xfd)

{

switch(temp)

{

case0xed:

num=25;break;

case0xdd:

num=36;break;

}

}

while(temp!

=0xf7)

temp=P3;

}

returnnum;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1