矩阵式键盘的结构与工作原理
- 格式:doc
- 大小:28.50 KB
- 文档页数:2
1 引言与其它工业控制系统相比,PLC控制系统具有可靠性高、抗干扰能力强等突出优点,因而广泛应用于工业控制领域。
对于那些不必采用上位机监控+PLC现场控制的简易控制系统,操作面板的完善与否直接影响到整个系统的智能化程度高低。
对小型控制系统而言,在满足功能的前提下,高性价比一直是设计人员追求的目标,若采用触摸屏(如SIEMENS的TP270)+组态软件(如PROTOOL)的方式组成人机界面,势必使整个系统的性价比大为降低,因此,提出基于PLC的矩阵式键盘设计方案具有较大的实际意义。
2 矩阵式键盘工作原理矩阵式键盘是相对于独立式键盘而言的,也叫行列式键盘,是当键数较多时为节省I/O点而采取的一种结构。
在微机系统中,矩阵式键盘的构成方式如图1所示。
图1 矩阵式键盘结构图首先,判断整个键盘上有无键按下。
方法是:将列全输出为0,然后读入行的状态,如果行读入的状态全为1,则无键按下,不全为1则有键按下。
其次,若有键按下则逐列扫描。
方法是:依次将列线送低电平0,检查对应行线的状态;若行线全为1,则按键不在此列;若不全为1,则按键必在此列,且是与0电平行线相交的那个键。
最后,确定键值,并进入键处理程序。
3 矩阵式键盘硬件设计在PLC系统中设计矩阵式键盘不仅要用到输入口,而且也要用到输出口,因此,了解PLC I/O口内部电路的结构以及工作原理是十分重要的。
下面以S7-200的DC输入、输出模块为例,简要说明其工作原理。
3.1 输入模块如图2所示,为PLC的DC输入模块,其中,K1-输入开关;M-公共端;I0.0-输入点;R1、R2的典型值为5.6K、1K。
图2 直流输入模块电路图工作原理:若输入开关K1闭合,则输入信号经RC滤波和光电隔离后,转换为PLC的CPU所需的电平(一般为5V),再经过输入选择器与CPU的总线相连,从而将外部输入开关的“ON”状态输入到PLC内部,此时输入指示灯亮,且与该输入点对应的输入映像寄存器为“1”。
51单片机矩阵键盘原理51单片机矩阵键盘原理矩阵键盘是一种常用的输入设备,可以通过少量的I/O口控制多个按键。
51单片机作为嵌入式系统中常用的控制器,也可以通过控制矩阵键盘来实现输入功能。
1. 矩阵键盘的结构矩阵键盘由多个按键组成,每个按键都有一个引脚与其他按键共用,形成了一个按键矩阵。
例如,4x4的矩阵键盘有16个按键,其中每行和每列各有4个引脚。
2. 矩阵键盘的工作原理当用户按下某一个按键时,该按键所在行和列之间会形成一个电路通路。
这时,51单片机可以通过扫描所有行和列的电路状态来检测到用户所按下的具体按键。
具体实现过程如下:(1)将每一行引脚设置为输出状态,并将其输出高电平;(2)将每一列引脚设置为输入状态,并开启上拉电阻;(3)逐一扫描每一行引脚,当发现某一行被拉低时,则表示该行对应的某一个按键被按下;(4)记录下该行号,并将该行引脚设置为输入状态,其余行引脚设置为输出状态;(5)逐一扫描每一列引脚,当发现某一列被拉低时,则表示该列对应的是刚才所记录下的行号及其对应的按键;(6)通过行号和列号确定具体按键,并进行相应的处理。
3. 代码实现下面是一个简单的51单片机矩阵键盘扫描程序:```c#include <reg52.h> //头文件sbit row1 = P1^0; //定义引脚sbit row2 = P1^1;sbit row3 = P1^2;sbit row4 = P1^3;sbit col1 = P1^4;sbit col2 = P1^5;sbit col3 = P1^6;sbit col4 = P1^7;unsigned char keyscan(void) //函数定义{unsigned char keyvalue; //定义变量while(1) //循环扫描{row1=0;row2=row3=row4=1; //设置行状态 if(col1==0){keyvalue='7';break;} //读取按键值 if(col2==0){keyvalue='8';break;}if(col3==0){keyvalue='9';break;}if(col4==0){keyvalue='/';break;}row2=0;row1=row3=row4=1;if(col1==0){keyvalue='4';break;}if(col2==0){keyvalue='5';break;}if(col3==0){keyvalue='6';break;} if(col4==0){keyvalue='*';break;}row3=0;row1=row2=row4=1; if(col1==0){keyvalue='1';break;} if(col2==0){keyvalue='2';break;} if(col3==0){keyvalue='3';break;} if(col4==0){keyvalue='-';break;}row4=0;row1=row2=row3=1; if(col1==0){keyvalue='C';break;} if(col2==0){keyvalue='0';break;} if(col3==0){keyvalue='=';break;} if(col4==0){keyvalue='+';break;}}return keyvalue; //返回按键值}void main() //主函数{unsigned char key;while(1) //循环读取{key = keyscan(); //调用函数}}```以上代码实现了一个简单的矩阵键盘扫描程序,可以通过调用`keyscan()`函数来获取用户所按下的具体按键值。
电脑键盘工作原理简单来说,电脑键盘主要由按键组成,每个按键都对应一个特定的电信号。
按下按键时,按键会产生一个电信号,键盘通过将该信号转换成二进制码并发送给计算机,计算机再根据接收到的信号来进行相应的操作。
以下是一般电脑键盘的工作原理:1.扫描矩阵:电脑键盘通常采用矩阵结构。
这种结构将键盘按键分为多行和多列,并用导电材料连接每个按键的行和列。
在非按下状态下,行和列之间没有电流。
当按下一个按键时,该按键所在的行和列之间形成了电流通路。
2.扫描码检测:键盘控制器会不断扫描按键的状态。
当检测到一些按键的状态由非按下变为按下时,键盘控制器就会记录下该按键的位置信息。
3.按键编码:键盘控制器得到按键信息后,会将按键位置信息转换成特定的编码。
常见的编码方式包括ASCII码、扩展ASCII码、USBHID码等。
编码的目的是将按键的信息转化为计算机可识别的二进制信号。
4.传输信号:键盘控制器将按键编码后的信号通过键盘接口(如USB、PS/2、Bluetooth等)传输给计算机。
不同的接口有不同的传输协议和信号传输速率,但基本原理都是将按键信号转化为电信号进行传输。
5.计算机处理:除了上述基本的工作原理,键盘还有一些特殊功能:1.功能键:键盘上通常还有一些特殊功能键,如Ctrl、Shift、Alt等。
这些键的作用是与其他键结合使用,实现一些更加复杂的操作。
例如,Ctrl键+V可以实现粘贴操作。
2.多媒体键:有些键盘还配有一些额外的多媒体键,如音量控制键、播放/暂停键等。
这些键通过特定的编码和传输协议,可以控制计算机播放音频或视频等多媒体操作。
总结起来,电脑键盘的工作原理是将按键的电信号通过键盘控制器转换为计算机可识别的编码信号,并通过键盘接口传输给计算机。
计算机接收到信号后进行解码并执行相应的操作。
这样,用户通过按键就能够与计算机进行交互。
STM32矩阵键盘原理详解引言矩阵键盘是一种常见的输入设备,广泛应用于电子产品中。
在STM32微控制器中,利用GPIO引脚实现矩阵键盘控制相对简单,本文将详细介绍STM32矩阵键盘的基本原理。
基本原理矩阵键盘由多个按键组成,通常采用行列式排列。
每个按键都由一个触点和一个按键外壳组成,触点一般为弹簧式结构,按下按键时触点接通,释放按键时触点断开。
矩阵键盘的连接方式矩阵键盘的每个按键都被分配一个行号和列号,通过行线和列线来连接按键和控制芯片。
STM32通过GPIO来控制行线和列线的电平,实现按键的扫描和检测。
在STM32中,行线和列线可以连接到不同的GPIO引脚上。
行线连接到输出引脚,列线连接到输入引脚。
这样,通过对行线的输出和对列线的输入,可以实现对矩阵键盘的扫描和检测。
矩阵键盘的扫描原理矩阵键盘的扫描原理可以简单描述为以下几个步骤:1.将所有行线设置为高电平,所有列线设置为输入模式。
2.逐个将行线设置为低电平,并同时检测列线引脚的电平状态。
3.如果某一列的输入引脚检测到低电平,表示该列对应的按键被按下。
4.通过行线和列线的对应关系,确定被按下的按键的行号和列号。
矩阵键盘的按键映射通过扫描后,可以得到被按下的按键的行号和列号,STM32可以根据行列号的映射关系将按键信息转化为相应的按键值。
通常,矩阵键盘的按键映射是通过二维数组来实现的。
数组的行号对应行线,列号对应列线。
数组中的元素对应按键的键值。
例如,要实现一个4x4的矩阵键盘,可以通过以下数组表示按键的映射关系:uint8_t keyMap[4][4] = {{ '1', '2', '3', 'A' },{ '4', '5', '6', 'B' },{ '7', '8', '9', 'C' },{ '*', '0', '#', 'D' }};通过行列号可以确定数组中的元素,从而得到按键的键值。
矩阵键盘的原理及应用1. 矩阵键盘的原理矩阵键盘是一种常见的输入设备,由多个按键组成,可以同时检测多个按键的状态。
它采用了行列交叉的按键排列方式,通过按键的组合来实现多个输入选项。
其原理主要包括以下几个方面:1.1. 电路结构矩阵键盘的电路结构也称为“行列式键盘”,主要由行线(Row)和列线(Column)组成。
行线和列线通过导线互相交叉连接形成一个矩阵,每个按键都对应矩阵中的一个交叉点。
按键按下时,会导通对应的行线和列线,从而实现按键的状态检测。
1.2. 矩阵扫描矩阵键盘的工作原理是通过矩阵扫描来检测按键状态。
扫描过程由控制器完成,控制器通过逐行扫描的方式检测按键状态。
具体流程如下:1.所有行线置为高电平,所有列线设置为输入模式。
2.逐行将某一行设置为低电平,同时读取列线上的状态。
3.根据读取到的列线状态,确定按下的按键。
4.更新按键的状态,并记录下来。
5.重复以上步骤,直到扫描结束。
1.3. 按键编码矩阵键盘检测到按键状态后,需要进行按键编码,将按键状态转化为数字或字符。
常见的按键编码方式有两种:•行列编码:将矩阵键盘的行和列对应关系转化为一个唯一的值,通常使用二进制编码来表示。
•状态编码:通过按键的状态(按下或释放)来表示,通常使用两个状态位来编码。
2. 矩阵键盘的应用矩阵键盘由于其结构简单、使用方便等特点,在多个领域都得到了广泛的应用。
以下是矩阵键盘的一些常见应用场景:2.1. 电子产品矩阵键盘在电子产品中被广泛应用,比如手机、电视遥控器、计算器等。
它可以提供多个输入选项,方便用户进行操作。
矩阵键盘的结构紧凑,可与其他电路板集成,节省空间,适用于小型电子产品。
2.2. 工业控制矩阵键盘在工业控制领域也有重要应用。
比如工控终端设备、仪表仪器等,可以利用矩阵键盘实现数据输入和操作控制。
由于矩阵键盘可以同时检测多个按键的状态,因此非常适合于工业环境中需要同时输入多个信号的场合。
2.3. 家用电器矩阵键盘在家用电器中也有广泛应用,如洗衣机、微波炉、冰箱等。
矩阵式键盘工作原理矩阵式键盘通常由多个按键组成一个矩阵结构。
每个按键都与矩阵的特定位置相对应,并且每个按键都有一个唯一的标识符。
矩阵式键盘通常由行和列构成,行与列之间通过导线相连。
矩阵式键盘的工作原理基于按键的位置,并且利用行与列之间的连线来检测按键是否被按下。
当按键未被按下时,矩阵式键盘的每个按键都将断开。
当按下一些按键时,按键的金属接点会触碰到与之相对应的导线,导致行与列之间形成电连接。
这导致通过电流流过,形成一个闭合电路。
这一电路可以被接收器感应到,并识别为一些按键被按下。
典型的矩阵式键盘电路由一个控制器和一个扫描矩阵组成。
控制器对行和列的导线进行扫描,确定按键是否被按下。
扫描矩阵是键盘上每个按键的布线结构,它允许控制器独立地访问每个按键。
控制器在扫描矩阵中的每个行导线上施加高电平信号,然后依次扫描每个列导线,以检测每一行上是否有按键被按下。
当控制器检测到一个按键被按下时,它将相应的行和列组合起来,以确定按下的按键的位置。
为了准确识别按键,矩阵式键盘电路通常采用消除键盘“反弹”的技术。
按键反弹是指按键被按下后,金属接点可能会在一段时间内反弹,导致多次电连接。
为了避免这种情况,电路通常会在检测到按键按下之后,延时一段时间再次检测。
矩阵式键盘的工作原理不仅适用于小型键盘,还适用于更大的键盘布局,如标准计算机键盘。
在这种情况下,矩阵式键盘可由多个矩阵组成,每个矩阵对应一个键盘的一部分。
整个键盘上的按键被编码为多个矩阵上的位置,并通过相应的扫描和检测进行识别。
总结起来,矩阵式键盘通过行和列之间的电连接来检测按键是否被按下。
控制器和扫描矩阵的结合使用,可以实现对键盘上多个按键的检测。
通过消除按键的反弹并进行适当的延时,矩阵式键盘可以提供准确和可靠的按键输入。
这使得它成为广泛应用于各种电子设备中的一种常见输入方式。
矩阵键盘实验报告佘成刚学号2010302001班级08041202时间2016.01.20一、实验目的1.学习矩列式键盘工作原理;2.学习矩列式接口的程序设计。
二、实验设备普中HC6800ESV20开发板三、实验要求要现:用4*4矩阵键盘,用按键形式输入学号,在数码管上显示对应学号。
四、实验原理工作原理:矩阵式由行线和列线组成,按键位于行、列的交叉点上。
如图所示,一个4*4 的行、列结构可以构成一个由16 个按键的键盘。
很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的I/0 口。
(1)矩阵式键盘工作原理按键设置在行、列交节点上,行、列分别连接到按键开关的两端。
行线通过下拉电阻接到GND 上。
平时无按键动作时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。
列线电平如果为低,行线电平为高,列线电平如果为高,则行线电平则为低。
这一点是识别矩阵式键盘是否被按下的关键所在。
因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。
(2)按键识别方法下面以3 号键被按下为例,来说明此键是如何被识别出来的。
前已述及,键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线电平在无键按下时处于高电平状态。
如果让所有列线处于高电平那么键按下与否不会引起行线电平的状态变化,始终是高电平,所以,让所有列线处于高电平是没法识别出按键的。
现在反过来,让所有列线处于低电平,很明显,按下的键所在行电平将也被置为低电平,根据此变化,便能判定该行一定有键被按下。
但我们还不能确定是这一行的哪个键被按下。
所以,为了进一步判定到底是哪—列的键被按下,可在某一时刻只让一条列线处于低电平,而其余所有列线处于高电平。
当第1 列为低电平,其余各列为高电平时,因为是键3 被按下,所以第1 行仍处于高电平状态;当第2 列为低电平,其余各列为高电平时,同样我们会发现第1 行仍处于高电平状态,直到让第4 列为低电平,其余各列为高电平时,因为是3 号键被按下,所以第1 行的高电平转换到第4 列所处的低电平,据此,我们确信第1 行第4 列交叉点处的按键即3 号键被按下。
矩阵键盘工作原理1.按键扫描:矩阵键盘是由多个按键组成的,这些按键被排列成一个矩阵的形式。
在进行按键扫描时,会依次逐行或逐列地检测按键的状态,看是否有按键被按下。
通常,每行和每列都会有一个针脚来连接按键。
当按下一个按键时,该按键所在的行和列之间就会出现电性连通,形成一个按键矩阵电路。
2.按键编码:在按键扫描中,通过检测按键的行列连通状态可以确定哪个具体的按键被按下。
然而,矩阵键盘的针脚数量有限,无法通过直接连接给每一个按键独立编码的方式来实现,因此需要对按键信号进行编码。
一种常用的编码方式是使用行列编码器。
行列编码器通过感知具体的按键被按下的行和列连通状态来判断该按键的位置,并将该按键位置信息转化为一个对应的码值。
这个码值可以被传递给设备控制器或处理器,进而被进一步处理。
行列编码器通常通过矩阵按键的行列针脚输入来判断按键连通状态,然后将结果输出给设备控制器或处理器。
在实际应用中,矩阵键盘一般采用扫描式工作方式,即按键的行和列依次进行扫描。
具体工作步骤如下:1.首先,设备控制器或处理器会向矩阵键盘的行线输出一个低电平信号,同时将列线设置为输入状态。
2.然后,设备控制器或处理器会逐列检测按键的状态。
当有按键被按下时,该行和列之间会有电性连通,此时检测到的列的状态会改变。
设备控制器或处理器会将该连通的行列位置信息传递给行列编码器进行编码。
3.接下来,设备控制器或处理器会依次递增行的编号,重复上述步骤进行按键扫描,并实时更新按键状态信息,直到按键扫描完成。
总结起来,矩阵键盘的工作原理即通过扫描按键的行和列连通状态来检测按键是否被按下,然后通过行列编码器将按键位置信息编码为一个码值,最后将该码值传递给设备控制器或处理器进行处理。
通过这样的工作原理,矩阵键盘可以实现多个按键的同时检测和编码,为用户提供方便、高效的输入方式。
44矩阵键盘工作原理
矩阵键盘是一种常见的电子设备输入装置,其工作原理基于按键与电路连接的方式。
它包含多个横向和纵向排列的按键,通过矩阵形式的电路连接来实现按键的识别和输入信号的传输。
具体而言,矩阵键盘由电路板、导线和按键组成。
电路板通常有两层,上层是横向导线,下层则是纵向导线。
按键则与这两层导线连接,形成一个矩阵。
每个按键分别对应一个顶点,横向导线连接所有按键的顶点,纵向导线连接所有按键的底座。
当按下一个按键时,该按键的顶点导线和底座导线会通过接触互相连接,形成通路。
这个通路的信息会被传入一个专门处理输入信号的控制芯片中。
控制芯片会分析这个通路,并根据通路位置的特定编码来确定被按下的按键。
工作原理的关键是通过行列的矩阵连接来检测按键的状态。
当不按下按键时,控制芯片会通过扫描横向导线和纵向导线上的电流是否闭合的方式来判断按键的位置。
由于按键上的导线并未连接,电流无法通过并被控制芯片检测到。
而当按下某个按键时,与该按键对应的行和列导线就会连接,形成闭合的电路,电流开始流动。
控制芯片通过检测到电流的存在来判断按键的位置。
总的来说,矩阵键盘通过按键与电路的连接来实现输入信号的传输和按键状态的识别。
它的工作原理主要基于按键通路形成和电流检测等原理。
这种设计使得矩阵键盘在电子设备中应用广泛,如计算机、手机等。
中断法识别矩阵键盘的原理
中断法识别矩阵键盘的原理如下:
在一个矩阵键盘中,每个按键都与一个行和一个列相交。
当按下某个按键时,该按键的行和列之间会形成一个电路。
这个电路会触发一个中断信号,通知处理器有一个按键按下了。
中断是一种硬件信号,它可以暂停处理器正在执行的程序,并跳转到一个特殊的中断处理程序。
在矩阵键盘中,当有按键按下时,会触发一个中断信号,处理器会立即跳转到中断处理程序。
中断处理程序会读取键盘的状态寄存器,确定哪个按键被按下了。
然后它会将按键的ASCII码或扫描码存储在一个缓冲区中,以便处理器的主程序可以读取它。
通过这种方式,处理器可以在不阻塞主程序的情况下,实时地响应用户的键盘输入。
矩阵键盘键值的计算方法矩阵键盘是一种常见的输入设备,广泛应用于计算机、手机、电子器件等。
它通过将按下的键映射为一个特定的键值,实现对应用程序的输入控制。
本文将介绍矩阵键盘键值的计算方法,帮助读者了解矩阵键盘的工作原理和键值计算的方法。
一、矩阵键盘的基本原理矩阵键盘由多个行和列的按键构成,这些按键被排列成一个矩阵,行与列之间形成交叉点。
按下某个按键时,会使得对应行和列之间形成闭合电路。
矩阵键盘通过扫描行和列,检测到闭合电路,从而确定所按下的按键。
二、矩阵键盘键值计算的方法1. 扫描行和列矩阵键盘首先需要扫描行和列,以检测闭合电路。
这个过程可以通过控制行和列的输入输出来实现。
首先将所有行设置为高电平输出状态,然后逐行将其设置为低电平状态,同时检测列的输入状态。
如果某一列为低电平,则说明该行和列之间的按键闭合,即键盘检测到按键按下的动作。
2. 确定键值在检测到按键闭合后,需要进一步确定对应的键值。
这个过程需要根据键盘的布局和键盘的编码规则来实现。
一般情况下,我们可以以行列号的方式对键盘按键进行编码。
假设有N 行M 列的键盘,按下的按键位于第i 行第j 列,则键值可表示为(i-1)*M + j。
通过这种方式,我们可以根据按下的行和列号计算出对应按键的键值。
假设有一个4 行4 列的矩阵键盘,按下的按键位于第3 行第2 列。
按照上述计算方法,我们可以得到键值为(3-1)*4 + 2 = 10。
因此,按下的按键对应的键值为10。
3. 键值的应用计算出按键的键值后,我们可以将其应用于对应的应用程序中。
键值可以作为输入信号传递给应用程序,根据键值的不同,应用程序可以执行相应的操作。
例如,将键值与预先定义的按键映射表进行匹配,可以实现不同按键对应的功能,如快捷键、功能键等。
矩阵键盘键值的计算方法涉及到扫描行和列,确定键值等关键步骤。
通过扫描行和列,可以检测到按键的闭合电路;通过确定键值,可以识别所按下的按键。
这种计算方法可以广泛应用于矩阵键盘的设计和开发中,帮助我们理解矩阵键盘的工作原理和键值计算的方法,并将其应用到实际的应用程序中。
距阵键盘矩阵键盘是单片机编程中所使用的键盘.1.矩阵式键盘的结构与工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
具体的识别及编程方法如下所述。
2、矩阵式键盘的按键识别方法确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
1、判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
2、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
下面给出一个具体的例子:图仍如上所示。
8031单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。
矩阵式键盘的结构与工作原理
在键盘中按键数量较多时为了减少I/O 口的占用通常将按键排列成矩阵形式如图1 所
示在矩阵式键盘中每条水平线和垂直线在交叉处不直接连通而是通过一个按键加以连
接这样一个端口如P1 口就可以构成4*4=16 个按键比之直接将端口线用于键盘
多出了一倍而且线数越多区别越明显比如再多加一条线就可以构成20 键的键盘而
直接用端口线则只能多出一键9 键由此可见在
需要的键数比较多时采用矩阵法来做键盘是合理的
矩阵式结构的键盘显然比直接法要复杂一些识别也要复杂一些上图中列线通过电
阻接正电源并将行线所接的单片机的I/O 口作为输出端而列线所接的I/O 口则作为输入这样当按键没有按下时所有的输出端都是高电平代表无键按下行线输出是低电平
一旦有键按下则输入线就会被拉低这样通过读入输入线的状态就可得知是否有键按下
了具体的识别及编程方法如下所述
矩阵式键盘的按键识别方法
确定矩阵式键盘上何键被按下介绍一种行扫描法
行扫描法
行扫描法又称为逐行或列扫描查询法是一种最常用的按键识别方法如上图所示
键盘介绍过程如下
判断键盘中有无键按下将全部行线Y0-Y3 置低电平然后检测列线的状态只要有一
列的电平为低则表示键盘中有键被按下而且闭合的键位于低电平线与4 根行线相交叉的4 个按键之中若所有列线均为高电平则键盘中无键按下
判断闭合键所在的位置在确认有键按下后即可进入确定具体闭合键的过程其方法
是依次将行线置为低电平即在置某根行线为低电平时其它线为高电平在确定某根行
线位置为低电平后再逐行检测各列线的电平状态若某列为低则该列线与置为低电平的
行线交叉处的按键就是闭合的按键
下面给出一个具体的例子
图仍如上所示8031 单片机的P1 口用作键盘I/O 口键盘的列线接到P1 口的低4 位
键盘的行线接到P1 口的高4 位列线P1.0-P1.3 分别接有4 个上拉电阻到正电源+5V 并把列线P1.0-P1.3 设置为输入线行线P1.4-P.17 设置为输出线4 根行线和4 根列线形成16
个相交点
检测当前是否有键被按下检测的方法是P1.4-P1.7 输出全0 读取P1.0-P1.3 的状态
若P1.0-P1.3 为全1 则无键闭合否则有键闭合
去除键抖动当检测到有键按下后延时一段时间再做下一步的检测判断
若有键被按下应识别出是哪一个键闭合方法是对键盘的行线进行扫描P1.4-P1.7 按下
述4 种组合依次输出
P1.7 1 1 1 0
P1.6 1 1 0 1
P1.5 1 0 1 1
P1.4 0 1 1 1
在每组行输出时读取P1.0-P1.3 若全为1 则表示为0 这一行没有键闭合否则
有键闭合由此得到闭合键的行值和列值然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值
为了保证键每闭合一次CPU 仅作一次处理必须却除键释放时的抖动__。