欢迎来到天天文库
浏览记录
ID:59361242
大小:14.74 KB
页数:8页
时间:2020-09-04
《单片机矩阵键盘检测程序并用数码管显示c语言程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#defineuint16unsignedint#defineuint8unsignedchar//控制数码管段选锁存口sbitP3_7=P3^7;//共阴数码管显示uint8codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};uint8temp;uint16num;//延时子函数voiddelay(uint16z){uint16x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//子函数
2、声明uint8keyscan();voiddisplay(uint8);voidmain(){num=17;while(1){display(keyscan());}}voiddisplay(uint8num1){P2=0xf8;P3_7=1;P0=table[num1-1];P3_7=0;}uint8keyscan(){P1=0xfe;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xee:num=1;b
3、reak;case0xde:num=2;break;case0xbe:num=3;break;case0x7e:num=4;break;default:break;}while(temp!=0xf0)//检测按键是否放开{temp=P1;temp=temp&0xf0;}}}P1=0xfd;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xed:num=5;break;case0xdd:num=6;break
4、;case0xbd:num=7;break;case0x7d:num=8;break;default:break;}while(temp!=0xf0)//检测按键是否放开{temp=P1;temp=temp&0xf0;}}}P1=0xfb;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xeb:num=9;break;case0xdb:num=10;break;case0xbb:num=11;break;c
5、ase0x7b:num=12;break;default:break;}while(temp!=0xf0)//检测按键是否放开{temp=P1;temp=temp&0xf0;}}}P1=0xf7;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xe7:num=13;break;case0xd7:num=14;break;case0xb7:num=15;break;case0x77:num=16;break;
6、default:break;}while(temp!=0xf0)//检测按键是否放开{temp=P1;temp=temp&0xf0;}}}returnnum;}
此文档下载收益归作者所有