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