《键盘接口技术》课件

上传人:san****019 文档编号:83883321 上传时间:2019-03-01 格式:PPT 页数:55 大小:8.87MB
返回 下载 相关 举报
《键盘接口技术》课件_第1页
第1页 / 共55页
《键盘接口技术》课件_第2页
第2页 / 共55页
《键盘接口技术》课件_第3页
第3页 / 共55页
《键盘接口技术》课件_第4页
第4页 / 共55页
《键盘接口技术》课件_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《《键盘接口技术》课件》由会员分享,可在线阅读,更多相关《《键盘接口技术》课件(55页珍藏版)》请在金锄头文库上搜索。

1、第2章 键盘接口技术,按键 简单键盘接口 矩阵式键盘接口 可编程键盘接口,按键的分类 按键输入原理 按键开关的抖动问题,键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说键盘是一组规则排列的开关。单片机使用的按键是一种常开型的开关,平时按键的两个触点处于断开状态,按下键时它们才闭合。,按 键,按键的分类,按键按照结构原理可分为两类: 1.触点式开关按键,如机械式开关、导电橡胶式开关等; 2.无触点开关按键,如电气式按键,磁感应按键等。.,按键按照接口原理可分为: 1.编码键盘 2.非编码键盘两类,,编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与

2、识别。,前者造价低,后者寿命长。目前,单片机系统中最常见的是触点式开关按键。,按键输入原理,在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,单片机系统应完成该按键所设定的功能,按键信息输入是与软件结构密切相关的过程。 对于一个键盘或一组按键,单片机系统中总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无按键输入并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,按键开关的抖动问题,单片机系统中应用的一般是由机械触点构成的

3、按键。当机械触点断开、闭合时,会有抖动,如下图所示。在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。,常用的去抖动的方法有两种: 1.硬件方法 2.软件方法,硬件方法,在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路,如图所示 。,电路工作过程,电路工作过程,按键未按下时,a = 0,b = 1,输出Q = 1,按键按下时,因按键的机械弹性作用的影响,使按键产生抖动,当开关没有稳定到达b端时,因与非门2输出为0反馈到与非门1的输入端,封锁了与非门1,双稳态电路的状态不会改变,输出保持为1

4、,输出Q不会产生抖动的波形。当开关稳定到达b端时,因a = 1,b = 0,使Q = 0,双稳态电路状态发生翻转。当释放按键时,在开关未稳定到达a端时,因Q = 0,封锁了与非门2,双稳态电路的状态不变,输出Q保持不变,消除了后沿的抖动波形。当开关稳定到达a端时,因a = 0,b = 1,使Q = 1,双稳态电路状态发生翻转,输出Q重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。,软件方法,软件方法其实很简单,就是在单片机获得P1.0口为低电平的信息后,不是立即认定S已被按下,而是延时10ms或更长一些时间后再次检测P1.0口,如果仍为低电平,说明S的确按下了,这

5、实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1.0为高电平)再延时510ms,消除后沿的抖动,然后再对键值处理。不过一般情况下,通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。当然,在实际应用中,对按键的要求也是千差万别的,要根据不同的需要来编制处理程序,但以上是消除按键抖动的原则。,简单键盘接口,简单键盘的工作原理 简单键盘的接口电路与编程 实践与思考,简单键盘的工作原理,如果系统只需几个按键,可直接采用I/O线构成单个按键电路,各个按键之间相互独立,一根线上的按键状态不会影响其他输入线上的工作状态,又称独立式键盘接口电路。,这种电路每个按键需要占用一根I/O线

6、,在按键数量较多时,输入口浪费大且电路结构很烦琐,因此这种键盘接口电路只适用于按键较少或要求较高操作速度的场合。,简单键盘的接口电路与编程,(1)程序实现的功能 (2)程序采用的方法 (3)程序中用到的变量和常量的定义 (4)程序中调用的子程序 (5)程序清单 (6)程序分析与思考,下面以图 (a)为例进行编程。,程序实现的功能,检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的按键处理。,程序采用的方法,P3.2:开始,按此键则灯开始流动(由上而下) P3.3:停止,按此键则停止流动,所有灯为暗 P3.4:上,按此键则灯由上向下流动 P3.5:下,按此键则灯由下向上流动,程序采

7、用查询的方法,P1口接8个发光二极管,4个按键分别接到P3.2 、P3.3、P3.4和P3.5,且定义如下。,程序中用到的变量和常量的定义,UpDown ;上下行标志 StartEnd ;启动及停止标志 LAMPCODE ;存放流动的数据代码,程序中调用的子程序,KEY ;键盘程序 KEYPROC ;键盘处理程序 LAMP ;灯显示程序 DELAY ;延时程序,键盘处理中调用,程序分析与思考,这里介绍的键盘处理程序比较简单,实际上,键盘的处理是很复杂的,但这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来

8、,最后再去写代码,这样,才能快速有效地写好代码。,实践与思考,1. 设计一个简单3个按键的键盘来控制一组发光二极管,使这组发光二极管可以以6种不同的花色循环点亮。 2. 改用单键实现题1所示功能。,矩阵式键盘接口,矩阵式键盘的结构与工作原理 矩阵式键盘按键的识别 键盘的编码 键盘的工作方式 矩阵键盘的接口实例 实践与思考,矩阵式键盘的结构与工作原理,矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。然而,矩阵键盘中的行线

9、、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。,矩阵式键盘按键的识别,1. 扫描法 2. 线反转法,扫描法,按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行平电的变化,便能判定相应的行有键按下。8号键按下时,第2行一定为低电平,然而,第2行为低电平时,能否肯定是8号键按下呢?回答是否定

10、的,因为9、10、11号键按下同样使第2行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。,线反转法,第1步:将列线P1.4P1.7 作为输入线,行线P1.3P1.0 作为输出线,并将输出线输出全为低电平,读列线状态,则列线中电平为低的是按键所在的列。 第2步:将行线作为输入线,列线作为输出线,并将输出线输出为低电平,读行线状态,则行线中电平为低的是按键所在的行。 综合第1、2两步结果,可确定按键所在的行和列,从而识别出所按下的键

11、。,键盘的编码,1.独立式键盘 按键数量少,可根据实际需要灵活编码。 2.矩阵式键盘 按键的位置由行号和列号唯一确定,因此可分别对行号和列 号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。,不同行的键离散性较大,不利于散转指令对按键进行处理。,采用依次排列键号的方式对安排进行编码。,无论以何种方式编码,均应以处理问题方便为原则,而最基本的就是键所处的物理位置即行号和列号,它是各种编码之间相互转换的基础,编码相互转换可通过计算或查表的方法实现。,总结:,键盘的工作方式,编程扫描方式 定时扫描方式 中断扫描方式,编程扫描方式,编程扫描方式是利用CPU完成其他工作的空余调用键盘

12、扫描子程序来响应键盘输入的要求。在执行键功能程序时,CPU不再响应键输入要求,直到CPU重新扫描键盘为止。 键盘扫描程序一般应包括以下内容: (1)判别有无键按下。 (2)键盘扫描取得闭合键的行、列值。 (3)用计算法或查表法得到键值。 (4)判断闭合键是否释放,如没释放则继续等待。 (5)将闭合键键号保存,同时转去执行该闭合键的功能。,定时扫描方式,定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断,CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。,定时扫描方式,程序流程图,

13、中断扫描方式,当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。中断扫描方式可以提高CPU工作效率 。,图中的4输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5V电源,输出端接至8051的外部中断输入端。具体工作如下:当键盘无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,端为低电平,向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描子程序。,矩阵键盘的接口实例,8051单片机的P1口作为键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。列线P1.0

14、P1.3分别接有4个上拉电阻到正电源+5V,并把列线P1.0P1.3设置为输入线,行线P1.4P.17设置为输出线。4根行线和4根列线形成16个相交点。,(1)程序功能。若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。 (2)检测当前是否有键被按下。检测的方法是P1.4P1.7输出全“0”,读取P1.0P1.3的状态,若P1.0P1.3为全“1”,则无键闭合,否则有键闭合。 (3)去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。 (4)P1.4P1.7按下述4种组合依次输出: P1.7 1 1 1 0 P1.6 1 1 0 1 P1.5 1 0 1 1 P1

15、.4 0 1 1 1,矩阵键盘的接口实例,在每组行输出时读取P1.0P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。,矩阵键盘的接口实例,(5)为了保证键每闭合一次CPU仅做一次处理,必须去除键释放时的抖动。 (6)扫描程序的流程图 (7)键盘扫描程序,实践与思考,设计一个简易计算器,有键盘锁定功能。具体要求如下: (1)键盘锁定密码为8888,用户输入“锁定”“8888”后再按“锁定”键解锁。用户连续按两次“锁定”键,可以锁定键盘。 (2)简易计算器共有16个按键,09十个数字键

16、,加、减、等于、乘、除共5个功能键,还有一锁定键。 (3)设定一个指示锁定状态的指示位,该位为“0”表示解锁状态,为“1”表示锁定状态。 (4)编程实现键盘功能部分。,可编程键盘接口,Intel8279是一种可编程键盘/显示器接口芯片,它含有键盘输入和显示器输出两种功能。键盘输入时,它提供自动扫描,能与按键或传感器组成的矩阵相连,接收输入信息,它能自动消除键盘抖动并能对多键同时按下提供保护。显示输出时,它有一个168位显示RAM,其内容通过自动扫描,可由8或16 位LED数码管显示。,8279的基本功能 8279的控制 8279与单片机、键盘/显示器的接口 实践与思考,可编程键盘接口,8279的基本功能,8279的内部结构和工作原理 8279的引脚和功能 8279的工作方式,8279的内部结构,8279的内部结构框图,8279的工作原理,(1)I/O控制及数据缓冲器 (2)控

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号