单片机原理及接口技术 课件 第五章 键盘检测原理及应用_第1页
单片机原理及接口技术 课件 第五章 键盘检测原理及应用_第2页
单片机原理及接口技术 课件 第五章 键盘检测原理及应用_第3页
单片机原理及接口技术 课件 第五章 键盘检测原理及应用_第4页
单片机原理及接口技术 课件 第五章 键盘检测原理及应用_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单原及接片理口技术机12第五章

键盘检测原理及应用01按键去抖动处理02按键工作原理和扫描方式03键盘检测的应用?04习题PrincipleandinterfacetechnologyofMicrocomputer按键去抖动处理按键实际就是一种常用的按钮,按键未按下时,键的两个触点处于断开状态,按键按下时,两个触点才闭合。而键盘上的按键大多数是利用机械触点来实现键的闭合与释放,由于其弹性作用的影响,机械触点在闭合及断开瞬间均会产生抖动过程,从而使按键输入电压信号也出现抖动,其电压变化情况如图5-1所示。01按键去抖动处理从图5-1中可以看出,理想波形和实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动现象发生,抖动时间的长短与按键的机械特性有关,一般为5~10ms。按键的稳定闭合时间由操作人员的按键动作所确定,一般为几百毫秒至几秒。为了保证系统对键的一次闭合仅做一次键输入处理,必须进行消抖处理。一般可用硬件或软件的办法来消抖。在单片机组成的各种系统中,常采用软件去抖动的办法进行消抖。软件消抖就是在第一次检测到有键按下时先不动作,延时一段时间(一般为10ms),再次检测按键的状态,如果仍保持闭合状态,则确认真正有键按下。当检测按键释放后,也要给一段时间(一般为10ms)的延时,待后沿抖动消失后才能转入按键的处理程序。按键去抖动流程如图5-2所示。按键工作原理和扫描方式独立式键盘一般是指直接用I/O口线外接按钮构成。每个键单独占用一根I/O口线,I/O线间的工作状态互不影响。当某一按键闭合时,对应口线输入低电平,释放时输入高电平。要判断是否有键压下,只需要检测对应的单片机I/O口是低电平还是高电平。独立式键盘接口电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在键数较多时,I/O口线浪费较大,故只在按键数量不多时才采用这种键盘电路。在电路中,按键输入一般采用低电平有效,上拉电阻保证了按键断开时,I/O口线有确定的高电平。当I/O内部有上拉电阻时,外电路可以不配置上拉电阻。02独立式键盘电路如图5-3所示,其中K1具有增数功能,K2具有减数功能。刚开始数码管显示0,按一下K1,显示1,再按一下K1,显示2……,若数码管显示9,再按一下K1,显示0;同样,若刚开始数码管显示0,按一下K2,显示9,再按一下K2,显示8……。元件清单如表5-1。例1解:每次按下K1,新显示的数是原先的数加1;每次按下K2,新显示的数是原先的数减1;也就是按下K1要执行一个分支,按下K2执行另一个分支。每次执行完加1或者减1后都要在数码管上显示最后的结果;其次当加到9再向上加时又回到继续或当减至0时再向下减又回到9继续。流程如图5-4,仿真结果如图5-5所示。解按键工作原理和扫描方式矩阵键盘的结构单片机的I/O口线数量是有限的,独立键盘与单片机连接时,每一个按键都需要单片机的一个I/O口,当一个单片机系统需要的按键数较多时,为了少占用I/O口线,通常采用矩阵式(又称行列式)键盘接口电路。本书以4×4的矩阵式键盘为例介绍矩阵键盘,其结构如图5-6。其由4根行线和4根列线交叉构成,每一行将每个按键的一端连接在一起构成行线,每一列将每个按键的另一端连接在一起构成列线,按键位于行列的交叉点上,这样便构成16个按键。交叉点的行列线是不连接的,行线和列线是通过某个按键的按下和抬起实现联通和断开的,当按键按下的时候,此交叉点处的行线和列线导通。这样,只占用一个8位的并口便可以实现16个按键,因此矩阵式键盘对端口的利用率很高。。02行列式键盘矩阵键盘的检测独立键盘与单片机连接时,一端与单片机的I/O口相连,另一端与地相连,检测时只需判断与单片机相连的I/O口是高电平还是低电平。而矩阵键盘两端都与单片机的I/O口相连,所以检测时需要人为通过单片机I/O口送出低电平。矩阵键盘常用的检测方法有逐行扫描法(或逐列扫描法)和行列扫描法(又称反转法)。逐行扫描法检测原理是:给单片机高四位(列)轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为高电平的时候,说明有按键按下,然后通过接收到的数据是哪一位为低电平来判断是哪一个按键被按下。以图5-6为例说明,先给P1口的高四位(列)输出“1110”,即P1.4-P1.7为输出口;低四位(行)输入高电平“1111”,即P1.0-P1.3作为输入口,即P1=0xEF;然后对低四位进行逐行检测,若检测到行有低电平,说明对应的行有键按下。若读P1口的值为0xEE,说明第一行有键按下(P1.0行有键按下,即k0键按下);可以通过此法判断其它行有键按下。接着给P1口输入0xDF,来判断第二列是否有键按下;依次类推可以判断其它列是否有键按下。行列扫描法(又称反转法)检测原理是:检测时,通过给行、列端口输出两次相反的值,再将分别读入的行值和列值进行按位“或”运算,得到每个键的扫描码。即通过高四位全部输出低电平,低四位输出高电平,当接收到的数据,低四位不全为高电平时,说明有键按下,对应低四位有低电平的那一行有按键按下;然后再反过来,高四位输出高电平,低四位输出低电平,根据接收到的高四位的值判断是那一列有按键按下;有按键按下的行与有按键按下的列的交叉点的按键就是我们要找的按键。矩阵键盘的检测具体以例2说明,先给P1口的高四位输出低电平,即P1.4-P1.7为输出口;低四位输出高电平,即P1.0-P1.3作为输入口,即P1=0x0f。若有键按下,读P1口的低四位状态为“1101”,其值为0xDH(P1.1行为低电平)。再给P1口的高四位输出高电平,即P1.4-P1.7作为输入口;低四位输出低电平,即P1.0-P1.3为输出口,即P1=0xf0。若有键按下,读P1口的高四位状态为“1110”,其值为0xE0H(P1.4列为低电平)。将两次读出的P1口状态值进行逻辑或运算就得到其按键的特征编码为0xEDH(行与列交叉点k4键为此时按下的键)。用同样的方法可以得到其它15个按键的特征编码。编程时可以利用特征编码与按键的编码进行比较来判断是哪一个键按下。其流程图如图5-7。例2例2将矩阵键盘的按键号显示在一位静态数码管上,仿真电路如图5-8,元件清单如表5-2。解:要人为定义每个按键的按键号,然后根据矩阵键盘的扫描方法去获取按键的特征键值,并根据特征键值列出对应的按键号,通过共阳极数码管显示出来,主流程图如图5-9,仿真结果如图5-10。解课程发展STM32-C函数编写C函数来对H函数进行具体的描述和说明STM32引入结构体函数自建函数需要在主函数中引入定义H函数,注意ifdef和ifndef的用法异同点STM32-H函数Teachingcoursedesignofsinglechipmicrocomputer键盘检测的应用人机交互是单片机系统不可缺少,按键作为单片机系统的输入设备,在单片机系统的应用中发挥着重要的作用。03例3例3开关的使用。电路如图5-11,单片机P3.0引脚接一开关,P0口接8个发光二极管,当开关SW1闭合时从D1到D8流水灯循环点亮,断开时从D8到D1流水灯循环点亮,闭合或断开循环进行。元件清单如表5-3。解:开关在闭合后不会自动弹起,闭合与断开都需要手动完成。原则上它的使用与按键的使用类似。流程图如5-12,仿真结果如图5-13所示。解例4例4一键多功能的应用。电路如图5-14,按一下k1键从D1到D8流水灯循环点亮,再按一下k1键从D8到D1流水灯循环点亮,再按一下k1键奇偶Led灯交替点亮一次,再按一下k1键循环进行。元件清单如表5-4。解:一键多功能,主要是要对每次按下键后给定义一个特殊的值来区分,然后根据这个特殊的值去执行相应的功能。就如在生活中,相同姓名的人可以用身份证号来区别是一样的,因为身份证号是唯一的。流程图如5-14,仿真结果如5-15所示。解例5例5设计一个两位正整数的加减法简易计算器(减法要求被减数大于减数,否则报错)。要求对输入的正整数在输入时显示,计算加减法只显示最后的结果。解:根据题意,输入的数较多,采用矩阵键盘实现输入,而两位正整数加法的和可能是两位数或三位数,故数码管采用三位(由于proteus库中没有三位数码管,故采用四位数码管代替)。电路如图5-16,元件清单如表5-5。扬声器主要是在做减法运算时,被减数小于减数报警响三声,表示不符合要求出错。就像计算机中的计算器一样,要对输入的数要暂存处理保存,当输入为+、-、=时就取出暂存值赋给一个变量;若遇到等号时就根据前面输入的+或-进行加、减法计算。同时显示时也要与生活习惯一致,高位在前,低位在后。流程图如图5-17,仿真结果如图5-18所示。H文件对delayxms进行定义,对delayxms函数声明01主函数调用C文件,实现LED灯的闪烁,和原main函数对比03C文件实现具体延时函数的功能021.什么是按键抖动?单片机系统中如何消除按键抖动?2.独立按键的检测原理是什么?矩阵键盘的检测原理是什么?3.什么是矩阵键盘行列扫描法?简述其工作过程。4.电路如图5-19,P0口接一位数码管,P3口接8个按键,哪个按键按下,数码管就显示那个按键的按键号。如K5按下,就把键号5显示在数码管上。5.设计一电路满足:用LED灯组成♥形图形,系统有三个按键,当第一个按键按下时,所有的LED灯顺时针逐一点亮;第二个按键按下时,逆时针逐一熄灭所有的LED灯;第三个按键按下时,所有的LE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论