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