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

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

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

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

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

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

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

Proteus仿真原理图:

程序:

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

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

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetable1[]={

0xfc,0x60,0xda,0xf2,0x66,

0xb6,0xbe,0xe0,0xfe,0xf6};

ucharcodetable2[]={0x1f,0x2f,0x37};

voiddelay(uint);

voidkeyscan();

voiddisplay(uint);

voidmain()

{

while

(1)

{

keyscan();

//display(16);

}

}

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voidkeyscan()

{

uchartemp,key;

P3=0xfe;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xee:

key=1;

break;

case0xde:

key=2;

break;

case0xbe:

key=3;

break;

case0x7e:

key=4;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

 

P3=0xfd;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xed:

key=5;

break;

case0xdd:

key=6;

break;

case0xbd:

key=7;

break;

case0x7d:

key=8;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

P3=0xfb;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xeb:

key=9;

break;

case0xdb:

key=10;

break;

case0xbb:

key=11;

break;

case0x7b:

key=12;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

P3=0xf7;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xe7:

key=13;

break;

case0xd7:

key=14;

break;

case0xb7:

key=15;

break;

case0x77:

key=16;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

display(key*key);

}

voiddisplay(uintz)

{

ucharaa,bb,cc;

aa=z/100;

bb=z%100/10;

cc=z%10;

P1=table1[aa];

P2=table2[2];

delay

(1);

P2=0xff;

delay

(1);

P1=table1[bb];

P2=table2[1];

delay

(1);

P2=0xff;

delay

(1);

P1=table1[cc];

P2=table2[0];

delay

(1);

P2=0xff;

delay

(1);

}

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

当前位置:首页 > 解决方案 > 学习计划

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

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