《按下16个矩阵键盘依次在数码管上显示1-16的平方如按下第一个显示1,第二个显示4...(5页).doc》由会员分享,可在线阅读,更多相关《按下16个矩阵键盘依次在数码管上显示1-16的平方如按下第一个显示1,第二个显示4...(5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下第一个显示1,第二个显示4.Proteus仿真时,用的是元件库自带的矩阵键盘,分别代表1-16,仿真图如下:#include#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
2、,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;x0;x-)for(y=110;y0;y-);void display(uint a)uchar bai,ge,shi;if(a=0)P2=0;P1=0xff;elseif(a10)P2=tablea;P1=0xfe;else if(a100)shi=a/10;ge=a%10
3、;P2=tableshi;P1=0xfe;delay(1);P1=0xff;P2=tablege;P1=0xfd;delay(1);P1=0xff;else if(a1000)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!=0
4、xfe)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
5、(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 页-