欢迎来到天天文库
浏览记录
ID:57711769
大小:65.60 KB
页数:5页
时间:2020-09-01
《矩阵键盘扫描程序加原理图.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include//52系列单片机头文件#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1锁存器的锁存端sbitwela=P2^7;//申明U2锁存器的锁存端ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)//i
2、=xms即延时约xms毫秒for(j=110;j>0;j--);}voiddisplay(ucharnum){P0=table[num];//显示函数只送段选数据dula=1;dula=0;}voidmatrixkeyscan()//矩阵键盘扫描函数{uchartemp,key;P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xee:key=0;break;
3、case0xde:key=1;break;case0xbe:key=2;break;case0x7e:key=3;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}display(key);}}P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xed:key=4;break;case0xdd:key=5;brea
4、k;case0xbd:key=6;break;case0x7d:key=7;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}display(key);}}P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xeb:key=8;break;case0xdb:key=9;break;case0xbb:key=10;b
5、reak;case0x7b:key=11;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}display(key);}}P3=0xf7;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xe7:key=12;break;case0xd7:key=13;break;case0xb7:key=14;break;case0x77:k
6、ey=15;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}display(key);}}}voidmain(){P0=0;//关闭所有数码管段选dula=1;dula=0;P0=0xc0;//位选中所有数码管wela=1;wela=0;while(1){matrixkeyscan();//不停调用键盘扫描程序}}
此文档下载收益归作者所有