键盘接口原理与设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

线反转法



第1步:将列线P1.4~P1.7 作为输入线,行线 P1.3~P1.0 作为输出线,并将输出线输出全为低 电平,读列线状态,则列线中电平为低的是按键 所在的列。 第2步:将行线作为输入线,列线作为输出线,并 将输出线输出为低电平,读行线状态,则行线中 电平为低的是按键所在的行。 综合第1、2两步结果,可确定按键所在的行和列, 从而识别出所按下的键。
键盘的编码
1.独立式键盘 按键数量少,可根据实际需要灵活编码。 2.矩阵式键盘 按键的位置由行号和列号唯一确定,因 此可分别对行号和列号进行二进制编码, 然后将两值合成一个字节,高4位是行号, 低4位是列号。
键盘的编码
问题: 不同行的键离散性较大,不利 于散转指令对按键进行处理。 采用依次排列键号的方式对安排 进行编码。
可编程键盘接口
8279的基本功能 8279的控制 Fra Baidu bibliotek8279与单片机、键盘/显示器接口 实践与思考
8279的基本功能
8279的内部结构和工作原理
8279的引脚和功能

8279的工作方式
8279的内部结构框图
8279的工作原理
(1)I/O控制及数据缓冲器
(2)控制与定时寄存器及定时控制 (3)扫描计数器 (4)回复缓冲器、键盘去抖及控制 (5)FIFO/传感器及其状态寄存器
作方式控制字,同时还用来寄存其他操作 方式控制字。这些寄存器接收并锁存各种 命令,再通过译码电路产生相应的信号, 从而完成相应的控制功能。与其对应的引 脚为时钟输入端CLK,复位端RESET。
定时控制
定时控制电路由N个基本计数器组成,其
中,第一个计数器是一个可编程的N级计 数器,N= 2~31之间的数,由软件编程, 将外部时钟输入端CLK分频得到内部所需 的100kHz时钟,为键盘提供适当的扫描 频率和显示扫描时间。与其相关的引脚是 显示熄灭控制端。
消抖----硬件方法
设计一个滤波延时电路或单稳态电路
滤波延时消抖电路
消抖----软件方法
软件方法其实很简单,就是在单片机获得 P1.0口为低电平的信息后,不是立即认定S 已被按下,而是延时10ms或更长一些时间 后再次检测P1.0口,如果仍为低电平,说明 S的确按下了,这实际上是避开了按键按下 时的抖动时间。 在检测到按键释放后(P1.0为高电平)再 延时5~10ms,消除后沿的抖动,然后再对 键值处理。
如果系统只需几个按键,可直接采用I/O线 构成单个按键电路,各个按键之间相互独立, 一根线上的按键状态不会影响其他输入线上 的工作状态,又称独立式键盘接口电路。 这种电路每个按键需要占用一根I/O线,在 按键数量较多时,输入口浪费大且电路结构 很烦琐,因此这种键盘接口电路只适用于按 键较少或要求较高操作速度的场合。
键盘接口技术
1. 2. 3.
按键
简单键盘接口
矩阵式键盘接口
4.
可编程键盘接口
按键
单片机使用的按键是一种常开型的开关,平时按键
的两个触点处于断开状态,按下键时它们才闭合。 1. 按键的分类
2. 按键输入原理
3. 按键开关的抖 动问题
按键的分类
按键按照结构原理可分为两类:
1.
触点式开关按键:
如机械式开关、导电橡胶式开关等;
键盘工作方式
回复线作为行列式键盘的列输入线,相应的列输 入信号称为回复信号,由回复缓冲器缓冲并锁存。 在逐行列扫描时,回复线用来搜寻每一行列中闭 合的键,当某一键闭合时,去抖电路被置位,延 时等待10ms后,再检查该键是否仍处在闭合状态, 如不是闭合,则当做干扰信号不予理睬;如是闭 合,则将该键的地址和附加的移位、控制状态一 起形成键盘数据被送入8279内部的FIFO(先进先 出)存储器。
生一定时间(例如10ms)的定时,当定时
时间到就产生定时器溢出中断,CPU响应
中断后对键盘进行扫描,并在有键按下时
识别出该键,再执行该键的功能程序。
定时扫描方式 流程图
中断扫描方式
当无键按下时,CPU处理自己的工作,当有键按 下时,产生中断请求,CPU转去执行键盘扫描子 程序,并识别键号。中断扫描方式可以提高CPU 工作效率 。
简单键盘的接口电路
键盘检测程序功能
检测是否有键闭合
如有键闭合,则去除键抖动
判断键号并转入相应的按键处理
实践与思考
1. 设计一个简单3个按键的键盘来控制一 组发光二极管,使这组发光二极管可以 以6种不同的花色循环点亮。 2. 改用单键实现题1所示功能。
矩阵式键盘接口

矩阵式键盘的结构与工作原理
矩阵键盘的接口实例
(5)为了保证键每闭合一 次CPU仅做一次处理,必 须去除键释放时的抖动。 (6)扫描程序的流程图 (7)键盘扫描程序
实践与思考
设计一个简易计算器,有键盘锁定功能。要求如下: (1)键盘锁定密码为8888,用户输入“锁 定”“8888”后再按“锁定”键解锁。用户连续按 两次“锁定”键,可以锁定键盘。 (2)简易计算器共有16个按键,0~9十个数字键,加、 减、等于、乘、除共5个功能键,还有一锁定键。 (3)设定一个指示锁定状态的指示位,该位为“0” 表示解锁状态,为“1”表示锁定状态。 (4)编程实现键盘功能部分。
总结:
无论以何种方式编码,均应以处理问题方便为原则, 而最基本的就是键所处的物理位置即行号和列号,它是各 种编码之间相互转换的基础,编码相互转换可通过计算或 查表的方法实现。
键盘扫描方式
编程扫描方式
定时扫描方式
中断扫描方式
编程扫描方式
编程扫描方式是利用CPU完成其他工作的空余调用键 盘扫描子程序来响应键盘输入的要求。在执行键功能程 序时,CPU不再响应键输入要求,直到CPU重新扫描键 盘为止。
键盘扫描程序一般应包括以下内容:
(1)判别有无键按下。 (2)键盘扫描取得闭合键的行、列值。
(3)用计算法或查表法得到键值。
(4)判断闭合键是否释放,如没释放则继续等待。 (5)将闭合键键号保存,同时转去执行该闭合键的功能。
定时扫描方式
定时扫描方式就是每隔一段时间对键盘
扫描一次,它利用单片机内部的定时器产
矩阵键盘的接口实例
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. 线反转法
扫描法
按键按下时,与此键相连的行线与列线导通,行线在无键 按下时处在高电平,显然,如果让所有的列线也处在高电 平,那么,按键按下与否不会引起行线电平的变化,因此, 必须使所有列线处在低电平,只有这样,当有键按下时, 该键所在的行电平才会由高电平变为低电平。CPU根据行 平电的变化,便能判定相应的行有键按下。8号键按下时, 第2行一定为低电平,然而,第2行为低电平时,能否肯定 是8号键按下呢?回答是否定的,因为9、10、11号键按下 同样使第2行为低电平。为进一步确定具体键,不能使所有 列线在同一时刻都处在低电平,可在某一时刻只让一条列 线处于低电平,其余列线均处于高电平,另一时刻,让下 一列处在低电平,依次循环,这种依次轮流每次选通一列 的工作方式称为键盘扫描。
消抖----硬件方法
可采用在键输出端加R-S触发器(双稳态触 发器)或单稳态触发器构成去抖动电路:
电思 路 工考 作? 过 程
消抖电路工作原理
当释放按键时,在开关未稳定到达a端时, 因Q = 0,封锁了与非门2,双稳态电路 的状态不变,输出Q保持不变,消除了后 沿的抖动波形。当开关稳定到达a端时, 因a = 0,b = 1,使Q = 1,双稳态电路 状态发生翻转,输出Q重新返回原状态。 由此可见,键盘输出经双稳态电路之后, 输出已变为规范的矩形方波。
扫描计数器
键盘和显示器共用,提供键盘和显示器的扫描 信号。扫描计数器有两种工作方式:编码方式 和译码方式。按编码方式工作时,计数器作二 进制计数,4位计数状态从扫描线SL0~SL3输出, 经外部译码器译码后,为键盘和显示器提供扫 描信号。按译码方式工作时,扫描计数器的最 低二位被译码后,从SL0~SL3输出,提供了4中 选1的扫描译码。与其相关的引脚是扫描线 SL0~SL3。
消抖电路工作原理
按键未按下时,a = 0,b = 1,输出Q = 1, 按键按下时,因按键的机械弹性作用的影 响,使按键产生抖动,当开关没有稳定到 达b端时,因与非门2输出为0反馈到与非 门1的输入端,封锁了与非门1,双稳态电 路的状态不会改变,输出保持为1,输出Q 不会产生抖动的波形。当开关稳定到达b 端时,因a = 1,b = 0,使Q = 0,双稳态 电路状态发生翻转。
(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.0~P1.3,若 P1.6 1 1 0 1 全为“1”,则表示为“0”这一行没 P1.5 1 0 1 1 有键闭合,否则有键闭合。由此得到 P1.4 0 1 1 1 闭合键的行值和列值,然后把行值和 列值转换成所定义的键值。
2.
无触点开关按键:
如电气式按键,磁感应按键等。
前者造价低,后者寿命长。目前,单片机
系统中最常见的是触点式开关按键。
按键的分类
按键按照接口原理可分为:
1.编码键盘 2.非编码键盘两类
编码键盘主要用硬件来实现对键的识别,非编 码键盘主要是由软件来实现键盘的定义与识别。
按键输入原理
对于一个键盘或一组按键,单片机系统 中总有一个接口电路与CPU相连。CPU可 以采用查询或中断方式了解有无按键输入 并检查是哪一个键按下,将该键号送入累 加器ACC,然后通过跳转指令转入执行该 键的功能程序,执行完后再返回主程序。
可编程键盘接口芯片介绍
Intel8279是一种可编程键盘/显示器接口芯 片,它含有键盘输入和显示器输出两种功能, 是经典的接口芯片,目前使用已少。
基于SPI总线的MAX7219,是经典的8管共 阴数码管刷新和64按键接口驱动芯片,国内类 似型号有CH451/CH452。 基于I2C总线的键盘/显示驱动器--ZLG7290。
按键开关的抖动问题
常用的去抖动的方法有两种:
1.硬件方法 2.软件方法
抖动产生与影响
单片机系统中应用的一般是由机械触点 构成的按键。当机械触点断开、闭合时, 会有抖动。 在触点抖动期间检测按键的通与断状态, 可能导致判断出错。 按键一次按下或释放被错误地认为是多 次操作,这种情况是不允许出现的。
中断扫描方式
图中的4输入与门用于产生按 键中断,其输入端与各列线相 连,再通过上拉电阻接至+5V 电源,输出端接至8051的外部 中断输入端。具体工作如下: 当键盘无键按下时,与门各输 入端均为高电平,保持输出端 为高电平;当有键按下时,端 为低电平,向CPU申请中断, 若CPU开放外部中断,则会响 应中断请求,转去执行键盘扫 描子程序。
消抖----软件方法
不过一般情况下,通常不对按键释放的 后沿进行处理,实践证明,也能满足一 定的要求。当然,在实际应用中,对按 键的要求也是千差万别的,要根据不同 的需要来编制处理程序,但以上是消除 按键抖动的原则。
简单键盘接口
简单键盘的工作原理
简单键盘的接口电路与编程
实践与思考
简单键盘的工作原理
(6)显示RAM和显示寄存器。
I/O控制及数据缓冲器
数据缓冲器是双向缓冲器,连接内外 总线,用于传送CPU和8279之间的命令或 数据,对应的引脚为数据总线D0~D7。 I/O控制线是CPU对8279进行控制的引
线,对应的引脚为数据选择线A0;片选线;
读、写信号线。
控制与定时寄存器
控制与定时寄存器用来寄存键盘及显示工
可编程键盘接口
Intel8279是一种可编程键盘/显示器接口芯片,它
含有键盘输入和显示器输出两种功能。键盘输入时,它
提供自动扫描,能与按键或传感器组成的矩阵相连,接
收输入信息,它能自动消除键盘抖动并能对多键同时按
下提供保护。显示输出时,它有一个16×8位显示RAM,
其内容通过自动扫描,可由8或16 位LED数码管显示。
相关文档
最新文档