按下16个矩阵键盘依次在数码管上显示1-16的平方如按下第一个显示1,第二个显示4...(5页).doc
-
资源ID:36336107
资源大小:37KB
全文页数:5页
- 资源格式: DOC
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
按下16个矩阵键盘依次在数码管上显示1-16的平方如按下第一个显示1,第二个显示4...(5页).doc
-按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下第一个显示1,第二个显示4.Proteus仿真时,用的是元件库自带的矩阵键盘,分别代表1-16,仿真图如下:#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid init();/初始化子程序void delay(uint);/延时子程序void display(uint);/显示子程序uint keyscan();/按键扫描子程序uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar temp;uint num;void main()init();while(1)display(keyscan();void init()num=0;P2=0;P1=0xff;void delay(uint ms)uint x,y;for(x=ms;x>0;x-)for(y=110;y>0;y-);void display(uint a)uchar bai,ge,shi;if(a=0)P2=0;P1=0xff;elseif(a<10)P2=tablea;P1=0xfe;else if(a<100)shi=a/10;ge=a%10;P2=tableshi;P1=0xfe;delay(1);P1=0xff;P2=tablege;P1=0xfd;delay(1);P1=0xff;else if(a<1000)bai=a/100;shi=a%100/10;ge=a%10;P2=tablebai;P1=0xfe;delay(1);P1=0xff;P2=tableshi;P1=0xfd;delay(1);P1=0xff;P2=tablege;P1=0xfb;delay(1);P1=0xff;uint keyscan()P3=0xfe;temp=P3;if(temp!=0xfe)delay(5);temp=P3;if(temp!=0xfe)switch(temp)case 0xee:num=1;break;case 0xde:num=4;break;case 0xbe:num=9;break;case 0x7e:num=16;break;while(temp!=0xfe)temp=P3;P3=0xfd;temp=P3;if(temp!=0xfd)delay(5);temp=P3;if(temp!=0xfd)switch(temp)case 0xed:num=25;break;case 0xdd:num=36;break;case 0xbd:num=49;break;case 0x7d:num=64;break;while(temp!=0xfd)temp=P3;P3=0xfb;temp=P3;if(temp!=0xfb)delay(5);temp=P3;if(temp!=0xfb)switch(temp)case 0xeb:num=81;break;case 0xdb:num=100;break;case 0xbb:num=121;break;case 0x7b:num=124;break;while(temp!=0xfb)temp=P3;P3=0xf7;temp=P3;if(temp!=0xf7)delay(5);temp=P3;if(temp!=0xf7)switch(temp)case 0xe7:num=169;break;case 0xd7:num=196;break;case 0xb7:num=225;break;case 0x77:num=256;break;while(temp!=0xf7)temp=P3;return num;-第 5 页-