当前位置:文档之家› 8 键盘接口技术

8 键盘接口技术


达a端时,因a = 0,b = 1,使Q = 1,双稳态电路状态发生翻转,输出Q
重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规 范的矩形方波。
软件方法
软件方法其实很简单,就是在单片机获得P1.0口为低电平的信息
后,不是立即认定S已被按下,而是延时10ms或更长一些时间后再次 检测P1.0口,如果仍为低电平,说明S的确按下了,这实际上是避开 了按键按下时的抖动时间。而在检测到按键释放后(P1.0为高电平) 再延时5~10ms,消除后沿的抖动,然后再对键值处理。不过一般情
键盘的编码
1.独立式键盘 2.矩阵式键盘 按键数量少,可根据实际需要灵活编码。 按键的位置由行号和列号唯一确定,因此可分别对行号和列
号进行二进制编码,然后将两值合成一个字节,高4位是行号,低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保持不变,消除了后沿的抖动波形。当开关稳定到
线和多个键相连,各按键按下与否均影响 该键所在行线和列线的电平,各按键间将 相互影响,因此,必须将行线、列线信号 配合起来作适当处理,才能确定闭合键的 位置。
矩阵式键盘按键的识别
1. 扫描法 2. 线反转法
扫描法
按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平, 显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的 变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的 行电平才会由高电平变为低电平。CPU根据行平电的变化,便能判定相应的行有 键按下。8号键按下时,第2行一定为低电平,然而,第2行为低电平时,能否肯定 是8号键按下呢?回答是否定的,因为9、10、11号键按下同样使第2行为低电平。 为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只 让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,
按键输入原理
在单片机应用系统中,除了复位按键有专门的复位电路及专一的 复位功能外,其他按键都是以开关状态来设置控制功能或输入数据。 当所设置的功能键或数字键按下时,单片机系统应完成该按键所设定
的功能,按键信息输入是与软件结构密切相关的过程。
对于一个键盘或一组按键,单片机系统中总有一个接口电路与 CPU相连。CPU可以采用查询或中断方式了解有无按键输入并检查是 哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执 行该键的功能程序,执行完后再返回主程序。
程序去除键 抖动,判断键号并转入相应的按键处理。
程序采用的方法
程序采用查询的方法,P1口接8个发光二极管,4个按键 分别接到P3.2 、P3.3、P3.4和P3.5,且定义如下。 P3.2:开始,按此键则灯开始流动(由上而下) P3.3:停止,按此键则停止流动,所有灯为暗 P3.4:上,按此键则灯由上向下流动 P3.5:下,按此键则灯由下向上流动
按键的分类
按键按照结构原理可分为两类: 1.触点式开关按键,如机械式开关、导电橡胶式开关等; 2.无触点开关按键,如电气式按键,磁感应按键等。.
前者造价低,后者寿命长。目前,单片机系统中最常见的是触点式开 关按键。
按键按照接口原理可分为:
编码键盘主要是用硬件来实现
1.编码键盘
2.非编码键盘两类,
对键的识别,非编码键盘主要是 由软件来实现键盘的定义与识别。
• 矩阵键盘的接口实例
• 实践与思考
矩阵式键盘的结构与工作原理
矩阵式键盘中,行、列线分别连接到 按键开关的两端,行线通过上拉电阻接到 +5V上。当无键按下时,行线处于高电平状 态;当有键按下时,行、列线将导通,此 时,行线电平将由与此行线相连的列线电 平决定。这一点是识别矩阵按键是否被按
下的关键。然而,矩阵键盘中的行线、列
依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。
线反转法
• 第1步:将列线P1.4~P1.7 作为输入线,行线P1.3~P1.0
作为输出线,并将输出线输出全为低电平,读列线状态,
则列线中电平为低的是按键所在的列。 • 第2步:将行线作为输入线,列线作为输出线,并将输出 线输出为低电平,读行线状态,则行线中电平为低的是按 键所在的行。 • 综合第1、2两步结果,可确定按键所在的行和列,从而识 别出所按下的键。
表示出来,最后再去写代码,这样,才能快速有效地写好
代码。
实践与思考
1. 设计一个简单3个按键的键盘来控制一组发光二极管,使 这组发光二极管可以以6种不同的花色循环点亮。
2. 改用单键实现题1所示功能。
矩阵式键盘接口
• 矩阵式键盘的结构与工作原理
• 矩阵式键盘按键的识别
• 键盘的编码
• 键盘的工作方式
(1)程序功能。若有键被按下,应识别出是哪一个键闭合。方法是对键盘的 行线进行扫描。 (2)检测当前是否有键被按下。检测的方法是P1.4~P1.7输出全“0”,读取 P1.0~P1.3的状态,若P1.0~P1.3为全“1”,则无键闭合,否则有键闭合。 (3)去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判 断。 (4)P1.4~P1.7按下述4种组合依次输出: P1.7 1 1 1 0 P1.6 1 1 0 1 P1.5 1 0 1 1 P1.4 0 1 1 1
8279的内部结构 8279的内部结构框图
8279的工作原理
(1)I/O控制及数据缓冲器
(2)控制与定时寄存器及定时控制
(3)扫描计数器
(4)回复缓冲器、键盘去抖及控制
矩阵键盘的接口实例
8051单片机的P1口作为键盘I/O
口,键盘的列线接到P1口的低4位,
键盘的行线接到P1口的高4位。列线 P1.0~P1.3分别接有4个上拉电阻到 正电源+5V,并把列线P1.0~P1.3设 置为输入线,行线P1.4~P.17设置为
输出线。4根行线和4根列线形成16
个相交点。
矩阵键盘的接口实例
键盘扫描程序一般应包括以下内容:
(1)判别有无键按下。 (2)键盘扫描取得闭合键的行、列值。 (3)用计算法或查表法得到键值。 (4)判断闭合键是否释放,如没释放则继续等待。 (5)将闭合键键号保存,同时转去执行该闭合键的功能。
定时扫描方式
定时扫描方式就是每隔一段时间对键盘扫描一次,它 利用单片机内部的定时器产生一定时间(例如10ms)的
总结:
无论以何种方式编码,均应以处理问题方便为原则,而最基本的就是 键所处的物理位置即行号和列号,它是各种编码之间相互转换的基础,编 码相互转换可通过计算或查表的方法实现。
键盘的工作方式
• 编程扫描方式
• 定时扫描方式 • 中断扫描方式
编程扫描方式
编程扫描方式是利用CPU完成其他工作的空余调用键盘扫描子程 序来响应键盘输入的要求。在执行键功能程序时,CPU不再响应键输入 要求,直到CPU重新扫描键盘为止。
这种电路每个按键需要
占用一根I/O线,在按
键数量较多时,输入口 浪费大且电路结构很烦
琐,因此这种键盘接口
电路只适用于按键较少 或要求较高操作速度的
场合。
简单键盘的接口电路与编程
下面以图 (a)为例进行编程。 (1)程序实现的功能 (2)程序采用的方法
(3)程序中用到的变量和常量的定义
(4)程序中调用的子程序 (5)程序清单 (6)程序分析与思考
图中的4输入与门用于产生按键中断,其输入端
与各列线相连,再通过上拉电阻接至+5V电源,输出
端接至8051的外部中断输入端。具体工作如下:当 键盘无键按下时,与门各输入端均为高电平,保持
输出端为高电平;当有键按下时,端为低电平,向
CPU申请中断,若CPU开放外部中断,则会响应中 断请求,转去执行键盘扫描子程序。
定时,当定时时间到就产生定时器溢出中断,CPU响应中
断后对键盘进行扫描,并在有键按下时识别出该键,再执
行该键的功能程序。
定时扫描方式
程序流程图
中断扫描方式
当无键按下时,CPU处理自己的工作,当有键按下时,产 生中断请求,CPU转去执行键盘扫描子程序,并识别键号。中
断扫描方式可以提高CPU工作效率 。
况下,通常不对按键释放的后沿进行处理,实践证明,也能满足一定
的要求。当然,在实际应用中,对按键的要求也是千差万别的,要根 据不同的需要来编制处理程序,但以上是消除按键抖动的原则。
简单键盘接口
• 简单键盘的工作原理
• 简单键盘的接口电路与编程 • 实践与思考
简单键盘的工作原理
如果系统只需几个按键,可直接采用I/O线构成单个按键电路,各个按 键之间相互独立,一根线上的按键状态不会影响其他输入线上的工作状态, 又称独立式键盘接口电路。
(3)设定一个指示锁定状态的指示位,该位为“0”表示解锁状态,为
“1”表示锁定状态。 (4)编程实现键盘功能部分。
可编程键盘接口
Intel8279是一种可编程键盘/显示器接口芯片,它
含有键盘输入和显示器输出两种功能。键盘输入时,它
提供自动扫描,能与按键或传感器组成的矩阵相连,接
收输入信息,它能自动消除键盘抖动并能对多键同时按
第2章 键盘接口技术
1. 按键
相关主题