《键盘接口技术》课件.ppt
《《键盘接口技术》课件.ppt》由会员分享,可在线阅读,更多相关《《键盘接口技术》课件.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 键盘接口技术1.按键按键 2.简单键盘接口简单键盘接口 3.矩阵式键盘接口矩阵式键盘接口 4.可编程键盘接口可编程键盘接口 1.按键的分类按键的分类2.按键输入原理按键输入原理3.按键开关的抖动问题按键开关的抖动问题 键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说键盘是一组规则排列的开关。单片机使用的按键是一种常开型的开关,平时按键的两个触点处于断开状态,按下键时它们才闭合。按按 键键按键的分类按键的分类 按键按照结构原理可分为两类按键按照结构原理可分为两类:1.触点式开关按键,如机械式开关、导电橡胶式开关等;2.无触点开关按键,如电气式按键,磁感应按键等。.按键
2、按照接口原理可分为按键按照接口原理可分为:1.编码键盘2.非编码键盘两类,编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。前者造价低,后者寿命长。目前,单片机系统中最常见的是触点式开关按键。按键输入原理按键输入原理 在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,单片机系统应完成该按键所设定的功能,按键信息输入是与软件结构密切相关的过程。对于一个键盘或一组按键,单片机系统中总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无按键输入并检查是哪一个
3、键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。按键开关的抖动问题按键开关的抖动问题 单片机系统中应用的一般是由机械触点构成的按键。当机械触点断开、闭合时,会有抖动,如下图所示。在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。常用的去抖动的方法有两种:常用的去抖动的方法有两种:1.硬件方法 2.软件方法 硬件方法硬件方法 在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路,如图所示。电路工作过程电路工作过程 电路工作过程电路工作过程 按键未按
4、下时,a=0,b=1,输出Q=1,按键按下时,因按键的机械弹性作用的影响,使按键产生抖动,当开关没有稳定到达b端时,因与非门2输出为0反馈到与非门1的输入端,封锁了与非门1,双稳态电路的状态不会改变,输出保持为1,输出Q不会产生抖动的波形。当开关稳定到达b端时,因a=1,b=0,使Q=0,双稳态电路状态发生翻转。当释放按键时,在开关未稳定到达a端时,因Q=0,封锁了与非门2,双稳态电路的状态不变,输出Q保持不变,消除了后沿的抖动波形。当开关稳定到达a端时,因a=0,b=1,使Q=1,双稳态电路状态发生翻转,输出Q重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。软件
5、方法软件方法 软件方法其实很简单,就是在单片机获得P1.0口为低电平的信息后,不是立即认定S已被按下,而是延时10ms或更长一些时间后再次检测P1.0口,如果仍为低电平,说明S的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1.0为高电平)再延时510ms,消除后沿的抖动,然后再对键值处理。不过一般情况下,通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。当然,在实际应用中,对按键的要求也是千差万别的,要根据不同的需要来编制处理程序,但以上是消除按键抖动的原则。简单键盘接口简单键盘接口 简单键盘的工作原理简单键盘的接口电路与编程 实践与思考简单键盘的工作原
6、理简单键盘的工作原理 如果系统只需几个按键,可直接采用I/O线构成单个按键电路,各个按键之间相互独立,一根线上的按键状态不会影响其他输入线上的工作状态,又称独立式键盘接口电路。这种电路每个按键需要这种电路每个按键需要占用一根占用一根I/O线,在按线,在按键数量较多时,输入口键数量较多时,输入口浪费大且电路结构很烦浪费大且电路结构很烦琐,因此这种键盘接口琐,因此这种键盘接口电路只适用于按键较少电路只适用于按键较少或要求较高操作速度的或要求较高操作速度的场合。场合。简单键盘的接口电路与编程简单键盘的接口电路与编程(1)程序实现的功能(2)程序采用的方法(3)程序中用到的变量和常量的定义 (4)程序
7、中调用的子程序(5)程序清单(6)程序分析与思考 下面以图下面以图(a)为例进行编程。为例进行编程。程序实现的功能程序实现的功能 检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的按键处理。程序采用的方法程序采用的方法 lP3.2:开始,按此键则灯开始流动(由上而下)lP3.3:停止,按此键则停止流动,所有灯为暗lP3.4:上,按此键则灯由上向下流动lP3.5:下,按此键则灯由下向上流动 程序采用查询的方法,P1口接8个发光二极管,4个按键分别接到P3.2、P3.3、P3.4和P3.5,且定义如下。程序中用到的变量和常量的定义程序中用到的变量和常量的定义 UpDown ;上下行标
8、志StartEnd ;启动及停止标志LAMPCODE ;存放流动的数据代码程序中调用的子程序程序中调用的子程序 KEY ;键盘程序KEYPROC ;键盘处理程序LAMP ;灯显示程序DELAY ;延时程序,键盘处理中调用 程序分析与思考程序分析与思考 这里介绍的键盘处理程序比较简单,实际上,键盘的处理是很复杂的,但这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码。实践与思考实践与思考1.设计一个简单设计一个简单3个按键的键盘来控制一组发光二极管,使个按键的键
9、盘来控制一组发光二极管,使这组发光二极管可以以这组发光二极管可以以6种不同的花色循环点亮。种不同的花色循环点亮。2.改用单键实现题改用单键实现题1所示功能。所示功能。矩阵式键盘接口矩阵式键盘接口 矩阵式键盘的结构与工作原理 矩阵式键盘按键的识别 键盘的编码 键盘的工作方式 矩阵键盘的接口实例 实践与思考矩阵式键盘的结构与工作原理矩阵式键盘的结构与工作原理 矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。然而,矩阵键盘中
10、的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。矩阵式键盘按键的识别矩阵式键盘按键的识别 1.扫描法2.线反转法扫描法扫描法 按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的变化,因此
11、,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。行电平才会由高电平变为低电平。CPU根据行平电的变化,便能判定相应的行有键根据行平电的变化,便能判定相应的行有键按下。按下。8号键按下时,第号键按下时,第2行一定为低电平,然而,第行一定为低电平,然而,第2行为低电平时,能否肯定是行为低电平时,能否肯定是8号键按下呢?回答是否定的,因为号键按下呢?回答是否定的,因为9、10、11号键按下同样使第号键按下同样使第2行为低电平。为进行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一一步确定具体键,不能使所有列线在同一时刻
12、都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。线反转法线反转法 第1步:将列线P1.4P1.7 作为输入线,行线P1.3P1.0 作为输出线,并将输出线输出全为低电平,读列线状态,则列线中电平为低的是按键所在的列。第2步:将行线作为输入线,列线作为输出线,并将输出线输出为低电平,读行线状态,则行线中电平为低的是按键所在的行。综合第1、2两步结果,可确定按键
13、所在的行和列,从而识别出所按下的键。键盘的编码键盘的编码 1.独立式键盘 按键数量少,可根据实际需要灵活编码。2.矩阵式键盘 按键的位置由行号和列号唯一确定,因此可分别对行号和列 号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。问题:问题:不同行的键离散性较大,不利于散不同行的键离散性较大,不利于散转指令对按键进行处理。转指令对按键进行处理。采用依次排列键号的方式对安排进行编码。采用依次排列键号的方式对安排进行编码。无论以何种方式编码,均应以处理问题方便为原则,而最基本的就是无论以何种方式编码,均应以处理问题方便为原则,而最基本的就是键所处的物理位置即行号和列号,它是各种
14、编码之间相互转换的基础,编键所处的物理位置即行号和列号,它是各种编码之间相互转换的基础,编码相互转换可通过计算或查表的方法实现。码相互转换可通过计算或查表的方法实现。总结:总结:键盘的工作方式键盘的工作方式 编程扫描方式 定时扫描方式 中断扫描方式 编程扫描方式编程扫描方式 编程扫描方式是利用CPU完成其他工作的空余调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时,CPU不再响应键输入要求,直到CPU重新扫描键盘为止。键盘扫描程序一般应包括以下内容:键盘扫描程序一般应包括以下内容:(1)判别有无键按下。(2)键盘扫描取得闭合键的行、列值。(3)用计算法或查表法得到键值。(4)判断闭合
15、键是否释放,如没释放则继续等待。(5)将闭合键键号保存,同时转去执行该闭合键的功能。定时扫描方式定时扫描方式 定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断,CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。定时扫描方式定时扫描方式 程序流程图中断扫描方式中断扫描方式 当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。中断扫描方式可以提高CPU工作效率。图中的4输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电
16、阻接至+5V电源,输出端接至8051的外部中断输入端。具体工作如下:当键盘无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,端为低电平,向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描子程序。矩阵键盘的接口实例矩阵键盘的接口实例 8051单片机的单片机的P1口作为键盘口作为键盘I/O口,键盘的列线接到口,键盘的列线接到P1口的低口的低4位,位,键盘的行线接到键盘的行线接到P1口的高口的高4位。列线位。列线P1.0P1.3分别接有分别接有4个上拉电阻到个上拉电阻到正电源正电源+5V,并把列线,并把列线P1.0P1.3设设置为输入线,行线置为输入线,行
17、线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 0P1.6 1 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1矩阵键盘的接口实例矩阵键盘的接口实例
18、在每组行输出时读取在每组行输出时读取P1.0P1.3,若全为,若全为“1”,则表示为则表示为“0”这一行没有键闭合,否则有键闭合。由这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。法将闭合键的行值和列值转换成所定义的键值。矩阵键盘的接口实例矩阵键盘的接口实例(5)为了保证键每闭合一次CPU仅做一次处理,必须去除键释放时的抖动。(6)扫描程序的流程图(7)键盘扫描程序实践与思考实践与思考设计一个简易计算器,有键盘锁定功能。具体要求如下:设计一个简易计算器,有键盘锁定功能。具
19、体要求如下:(1)键盘锁定密码为8888,用户输入“锁定”“8888”后再按“锁定”键解锁。用户连续按两次“锁定”键,可以锁定键盘。(2)简易计算器共有16个按键,09十个数字键,加、减、等于、乘、除共5个功能键,还有一锁定键。(3)设定一个指示锁定状态的指示位,该位为“0”表示解锁状态,为“1”表示锁定状态。(4)编程实现键盘功能部分。可编程键盘接口可编程键盘接口 Intel8279是一种可编程键盘是一种可编程键盘/显示器接口芯片,它显示器接口芯片,它含有键盘输入和显示器输出两种功能。键盘输入时,它含有键盘输入和显示器输出两种功能。键盘输入时,它提供自动扫描,能与按键或传感器组成的矩阵相连,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 键盘接口技术 键盘 接口 技术 课件
限制150内