必威体育Betway必威体育官网
当前位置:首页 > IT技术

矩阵键盘的原理及应用

时间:2019-07-12 02:43:18来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

矩阵键盘

矩阵键盘原理图:

第一行的行控制线接到p17,第二行的行控制线接到p16,第三行的行控制线接到p15,第4行的行控制线接到p14

第一列的列控制线接到p13,第二列的列控制线接到p12,第三列的列控制线接到p11,第四列的列控制线接到p10

矩阵键盘的原理和独立按键类似,另外我们可以把矩阵键盘的任意一行或一列作为一个独立键盘使用,假如我们把第一行作为独立键盘,那么我们只需要让P17输出高电平,其余7个io口输出低电平即可,假如我们按下了s1,那么p13的电平就会被拉低,变为低电平,所以我们可以通过查找低4位里哪一位为低电平就可以知道哪个按键按下了。

下面来说说矩阵按键扫描原理(即当我们按下一个矩阵键盘的按键时,如何获取按键的位置)

方法有2种,一种是逐行扫描,一种是行列扫描.接下来就主要讲讲行列扫描.

行列扫描的话,就是一开始让p1口高4位输出高电平,低4位输出低电平,若这4行按键里,有按键按下了,那么那一行按键对应的io的电平就会被拉低,我们就可以知道按键的行坐标.获取按键列坐标的方法也是类似的,就是一开始让p1口高4位输出低电平,低4位输出高电平,若这4列按键里,有按键按下了,那么那一列按键对应的io的电平就会被拉低,我们就可以知道按键的列坐标,获得了行坐标x,列坐标y后,4*(x-1)+y就是按键的编号.

接下来贴份应用的代码,目的就是赋予16个按键键值,分别对应的键值是从0~F。按下一个键,第一个数码管就显示对应的键值

#include<reg52.h>
sbit lsa=P2^2;
sbit lsb=P2^3;
sbit lsc=P2^4;
#define duanxuan P0
#define keyboard P1
int zxm[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
int x,y;
void delay(int i)
{
	while(i--);
}
void keyproc()
{
    int a=0;
	P1=0x0f;//检测是哪一列有按键按下;
	if(P1!=0x0f)
	{
		delay(1000);
		if(P1!=0x0f)
		{
			P1=0x0f;
			switch(P1)
			{
				case(0x07):y=1;break;
				case(0x0b):y=2;break;
				case(0x0d):y=3;break;
				case(0x0e):y=4;break;
			}
		}
		P1=0xf0;//检测是哪一行有按键按下
		switch(P1)
		{
			case(0x70):x=1;break;
			case(0xb0):x=2;break;
			case(0xd0):x=3;break;
			case(0xe0):x=4;break;
		}
		while(a<50&&P1!=0xf0)//当按键按下的时间超过了500ms或者按键松开了就退出while循环
		{
			delay(1000);
			a++;
		}
		

	}
}
int main()
{
	lsa=0;
	lsb=0;
	lsc=0;//位选选中第一个数码管
	P0=0x00;//第一个数码管先什么都不显示
	while(1)
	{
		keyproc();
		P0=zxm[(x-1)*4+y-1];//送入段选信息
		
		
	}
	return 0;
	
}

数码管和138译码器原理图:

通过138译码器控制位选,例如p22输出电平为1,p23输出电平为0,p24输出电平为0,由p24,p23,p22构成了一个三位二进制数001,转换成10进制就是1,那么138译码器的输出端里y1就输出低电平到第二个数码管的com端,相当于位选选中了第二个数码管。

每一个数码管的8段led都是共阴极的,只要给对应数码管的com端输入低电平,数码管就能亮,至于哪些段亮哪些不亮就通过p0口控制,

相关阅读

编译原理实验(三)词法语法分析综合设计

Bilateral Filters(双边滤波算法)原理及实现

双边滤波算法原理: 双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样,双边滤波也是采用加权平

Stream Processing: Apache Kafka的Exactly-once的定

2018年,Apache Kafka以一种特殊的设计和方法实现了强语义的exactly-once和事务性。热泪盈眶啊!这篇文章将讲解kafka中exactly-once

微信域名防封防屏蔽系统的API接口实现原理

近常常听到搞微商,微信项目的在叫苦,由于微信域名屏蔽,哀鸿遍野。微信官方在对微信中推广活动的第三方网页内容管控越来越严格,如果活

Svm算法原理及实现

Svm(support Vector Mac)又称为支持向量机,是一种二分类的模型。当然如果进行修改之后也是可以用于多类别问题的分类。支持向量机可

分享到:

栏目导航

推荐阅读

热门阅读