矩阵键盘的检测ppt课件.ppt
回 顾,独立键盘的检测: 按键状态的扫描; 软件消抖及松手检测; 按键按下的处理,1/21,教学内容,矩阵键盘的结构 矩阵键盘的检测方法 矩阵键盘的编程操控及功能处理,2/21,教学要求,掌握独立键盘的检测原理及软件编程方法 行扫描法 线反转法,3/21,矩阵键盘的结构,矩阵键盘实际上是由排列成矩阵形式的一系列按键开关组成,用户通过键盘可以向CPU输入数据、地址和命令。常见的接口电路如右图所示。,4*4矩阵式键盘,4/21,矩阵键盘的结构,矩阵键盘特点 电路结构复杂,但提高了I/O引脚的利用率,软件编程较复杂,适用于所需按键较多的场合。 矩阵键盘的检测需解决以下问题: 1、开关状态的可靠输入——可设计硬件去抖动电路或设计去抖动软件。 2、键盘检测的方法(即如何编写键盘扫描函数)。 3、键盘检测的控制方式(即扫描函数如何被调用)——顺序查询方式、定时查询方式和中断方式。 4、键盘控制程序的编写。,5/21,按键的消抖,按键抖动时间约5ms-10ms,可软件消抖或者硬件消抖。 软件消抖:延时约10ms再次判断。 硬件消抖:并联电容或双稳态消抖电路。,消抖电路,6/21,矩阵键盘的检测方法,矩阵键盘识别按键的方法有两种:一是行扫描法,二是线反转法。 1)行扫描法 通过行线发出低电平信号,如果该行线所连接的键没有按下的话,则列线所接的端口得到的是全“1”信号,如果有键按下的话,则得到非全“1”信号。 为了防止双键或多键同时按下,往往从第0行一直扫描到最后1行,若只发现1个闭合键,则为有效键,否则全部作废。 找到闭合键后,读入相应的键值,再转至相应的键处理程序。 键号 = 行首键号(0、4、8、12)+列号(0、1、2、3),7/21,矩阵键盘的检测方法,8/21,矩阵键盘的检测方法,2)线反转法 先将行线作为输出线,列线作为输入线,行线输出全“0”信号,读入列线的值; 然后将行线和列线的输入输出关系互换,并且将刚才读到的列线值从列线所接的端口输出,再读取行线的输入值。那么在闭合键所在的行线上值必为0。这样,当一个键被按下时,必定可读到一对唯一的行列值。 键值 = 行值 | 列值 查表得键号。,9/21,矩阵键盘的检测方法,以4*4矩阵键盘接P3口为例 先列扫描置P3=0 xf0,当有键按下得列值,再行扫描置P3=0 x0f,当有键按下得行值,最后合并行列值得键值。,10/21,矩阵键盘检测的控制方式,单片机在运行过程中,何时进行键盘扫描和处理,有以下几种方式: 顺序查询方式 定时扫描方式 中断方式,11/21,矩阵键盘检测的控制方式,顺序查询方式 单片机主程序通过调用键盘扫描子程序,查询有无按键按下。 何时调用键盘扫描子程序,何时扫描键盘;否则不进行键盘的扫描。,12/21,矩阵键盘检测的控制方式,定时扫描方式 每隔一段时间调用键盘扫描子程序对键盘扫描一次。 利用单片机内部的定时器产生一定时间(例10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。,13/21,矩阵键盘检测的控制方式,中断方式 为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。,14/21,矩阵键盘案例(1)--线反转法,,矩阵键盘控制2位数码管显示,分别按下0-15号按键,数码管显示对应的键号,最初无键按下时数码管显示16,用线反转法实现。 参考程序见“矩阵键盘-线反转法”,15/21,矩阵键盘案例(1)--线反转法,,16/21,矩阵键盘案例(2)--行扫描法+定时扫描,,矩阵键盘控制2位数码管显示,分别按下0-15号按键,数码管显示对应的键号,最初无键按下时数码管显示16,用行扫描法+定时扫描实现。 参考程序见“矩阵键盘-行扫描法+定时扫描”,17/21,矩阵键盘案例(2)--行扫描法+定时扫描,,18/21,,小 结,矩阵键盘的检测: 按键的识别:行扫描法、线反转法; 软件消抖及松手检测; 按键按下的处理,19/21,中断式矩阵键盘如何与单片机连接电路?,,思考题,20/21,,预习内容,本周小课 行扫描法的原理是什么?键值如何得到? 线反转法的原理是什么?键值如何得到? 下周大课 串行通信基础知识 80C51串口结构及其工作方式0,21/21,