|
4*4矩陣鍵盤的實(shí)現(xiàn)原理圖以及代碼
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (18.68 KB, 下載次數(shù): 79)
下載附件
2017-11-23 03:03 上傳
0.png (15.16 KB, 下載次數(shù): 74)
下載附件
2017-11-23 03:04 上傳
單片機(jī)源程序如下:
- #include<reg51.h>
- unsigned char a[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7f,0x39,0x3f,0x79,0x71};
- void delay(unsigned int xsm);
- unsigned char keyscan(){
- unsigned char key,Row,Col;
- P3=0x0f;
- if(P3!=0x0f){
- delay(10);//去抖
- if(P3!=0x0f){
- Row=P3&0x0f;//確保端口值正確(行的值)
- P3=0xf0;
- Col=P3&0xf0;//列值
- }
- while((P3&0xf0)!=0xf0);//判斷鍵是否抬起
- }
- switch(Row+Col){
- case 0xee:key=0;break;
- case 0xde:key=1;break;
- case 0xbe:key=2;break;
- case 0x7e:key=3;break;
- case 0xed:key=4;break;
- case 0xdd:key=5;break;
- case 0xbd:key=6;break;
- case 0x7d:key=7;break;
- case 0xeb:key=8;break;
- case 0xdb:key=9;break;
- case 0xbb:key=10;break;
- case 0x7b:key=11;break;
- case 0xe7:key=12;break;
- case 0xd7:key=13;break;
- case 0xb7:key=14;break;
- case 0x77:key=15;break;
- }
- return key;
- }
- void main(){
- unsigned key1;
- while(1){
- key1=keyscan();
- P2=a[key1];
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
矩陣鍵盤.zip
(58.98 KB, 下載次數(shù): 102)
2017-11-22 20:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|