单片机8x8矩阵键盘原理说明.doc
《单片机8x8矩阵键盘原理说明.doc》由会员分享,可在线阅读,更多相关《单片机8x8矩阵键盘原理说明.doc(11页珍藏版)》请在三一文库上搜索。
1、单片机8x8矩阵键盘原理说明基于单片机接矩阵键盘原理单片机与矩阵键盘连接如下图:此图用P1口P1.0-P1.3接4行P1.4-P1.7接4列矩阵键盘工作原理:由于按键没有接地,4行4列正好占用8个I/O如果4行我们送P3.0到P3.3送入0111然后去读取4列的值,如果P3.0的按键按下那么P3.4-P3.7的值等于0111,假如是第2个键按下的话那么读回来的值是1011,如果第3个键按下去读回来的值是1101,如果第4个键按下去读回来的值是1110,如果没有键按下去读回来就是1111。所以我们就根据读回来的值来判断按下去的是那个键。当然这是对P3.0这一行,因为矩阵键盘是扫描的,所以下次把P
2、3.0给1P3.1给0对第2行,陆续的第3行第4行,0111101111011110而每次都去从新扫描一遍列值列有4个值,以确定是那个键按下。无论何时任何一个时间有一个按键被按下就跳出循环。当然不可能有2个键刚好一起按下你的手没有这么好的力度,就算有2个键一起按键,程序也有先后检测的顺序,只能检测一个后面的检测不到。P3=0XFE;/第一行给0temp;定义个变量temp=P3;读回来由于读需要先写1因为P3=FE已经把高4位给1了所以能读了temp启动后的原来图,还没有按键按下:再来一张,有按键按下的情况:代码如下:#includereg52.h#defineucharunsignedcha
3、r#defineuintunsignedint/共阴极数码管09ucharcodetable10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchartmp;/暂存P2的值ucharkeynum;/按键值ucharshi,ge;/数码管个位和十位显示sbitP36=P3;/数码管时能端sbitP37=P3;/数码管显示声明voiddisplay();/毫秒级延时voiddelay(uintz)uintx,y;for(x=z;x0;x-)for(y=110;y0;y-);voidkeyscan()P0=0xfe;/扫描第1行if(P2!=
4、0xff)/有按键按下tmp=P2;delay(5);if(P2!=0xff)/延时后确定有按键按下switch(tmp)case0xfe:keynum=1;break;/第1行第1个按键按下case0xfd:keynum=2;break;/第1行第2个按键按下case0xfb:keynum=3;break;/第1行第3个按键按下case0xf7:keynum=4;break;/第1行第4个按键按下case0xef:keynum=5;break;/第1行第5个按键按下case0xdf:keynum=6;break;/第1行第6个按键按下case0xbf:keynum=7;break;/第1行第
5、7个按键按下case0x7f:keynum=8;break;/第1行第8个按键按下while(tmp!=0xff)/等待按键松手tmp=P2;display();delay(5);P0=0xfd;/扫描第2行if(P2!=0xff)/有按键按下tmp=P2;delay(5);if(P2!=0xff)/延时后确定有按键按下switch(tmp)case0xfe:keynum=9;break;/第2行第1个按键按下case0xfd:keynum=10;break;/第2行第2个按键按下case0xfb:keynum=11;break;/第2行第3个按键按下case0xf7:keynum=12;br
6、eak;/第2行第4个按键按下case0xef:keynum=13;break;/第2行第5个按键按下case0xdf:keynum=14;break;/第2行第6个按键按下case0xbf:keynum=15;break;/第2行第7个按键按下case0x7f:keynum=16;break;/第2行第8个按键按下while(tmp!=0xff)tmp=P2;display();delay(5);P0=0xfb;/扫描第3行if(P2!=0xff)/有按键按下tmp=P2;delay(5);if(P2!=0xff)/延时后确定有按键按下switch(tmp)case0xfe:keynum=1
7、7;break;/第3行第1个按键按下case0xfd:keynum=18;break;/第3行第2个按键按下case0xfb:keynum=19;break;/第3行第3个按键按下case0xf7:keynum=20;break;/第3行第4个按键按下case0xef:keynum=21;break;/第3行第5个按键按下case0xdf:keynum=22;break;/第3行第6个按键按下case0xbf:keynum=23;break;/第3行第7个按键按下case0x7f:keynum=24;break;/第3行第8个按键按下while(tmp!=0xff)tmp=P2;displa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 x8 矩阵 键盘 原理 说明
链接地址:https://www.31doc.com/p-3398066.html