按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx
- 文档编号:6038591
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:7
- 大小:60.44KB
按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx
《按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx》由会员分享,可在线阅读,更多相关《按下16个矩阵键盘依次在数码管上显示116的平方如按下第一个显示1第二个显示4.docx(7页珍藏版)》请在冰豆网上搜索。
按下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;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16 矩阵 键盘 依次 数码管 显示 116 平方 下第 一个 第二