当前位置:文档之家› 单片机8x8矩阵键盘原理说明

单片机8x8矩阵键盘原理说明

单片机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这一行,因为矩阵键盘是扫描的,所以下次把P3.0给1P3.1给0对第2行,陆续的第3行第4行,0111101111011110而每次都去从新扫描一遍列值列有4个值,以确定是那个键按下。无论何时任何一个时间有一个按键被按下就跳出循环。当然不可能有2个键刚好一起按下你的手没有这么好的力度,就算有2个键一起按键,程序也有先后检测的顺序,只能检测一个后面的检测不到。

P3=0XFE;//第一行给0

temp;定义个变量

temp=P3;读回来由于读需要先写1因为P3=FE已经把高4位给1了所以能读了

temp">

启动后的原来图,还没有按键按下:

再来一张,有按键按下的情况:

代码如下:

#include《reg52.h》

#defineucharunsignedchar

相关主题