弗原創IT教育中心 第17讲单片机与键盘接口 1711键盘工作原理 1.按键的分类 按键按照结构原理可分为两类,一类是触点式开关按键, 如机械式开关、导电橡胶式开关等;另一类是无触点式开关按 键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。 目前,微机系统中最常见的是触点式开关按键
第17讲 单片机与键盘接口 17.1.1 键盘工作原理 1.按键的分类 按键按照结构原理可分为两类,一类是触点式开关按键, 如机械式开关、导电橡胶式开关等;另一类是无触点式开关按 键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。 目前,微机系统中最常见的是触点式开关按键
弗原創IT教育中心 按键按照接口原理可分为编码键盘与非编码键盘两类,这 两类键盘的主要区别是识别键符及给出相应键码的方法。编码 键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软 件来实现键盘的定义与识别。 全编码键盘能够由硬件逻辑自动提供与键对应的编码,此 外,一般还具有去抖动和多键、窜键保护电路。这种键盘使用 方便,但需要较多的硬件,价格较贵,一般的单片机应用系统 较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作 均由软件完成。由于其经济实用,较多地应用于单片机系统中。 下面将重点介绍非编码键盘接口
按键按照接口原理可分为编码键盘与非编码键盘两类,这 两类键盘的主要区别是识别键符及给出相应键码的方法。编码 键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软 件来实现键盘的定义与识别。 全编码键盘能够由硬件逻辑自动提供与键对应的编码,此 外,一般还具有去抖动和多键、窜键保护电路。这种键盘使用 方便,但需要较多的硬件,价格较贵,一般的单片机应用系统 较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作 均由软件完成。由于其经济实用,较多地应用于单片机系统中。 下面将重点介绍非编码键盘接口
弗原創IT教育中心 2.键输入原理 在单片机应用系统中,除了复位按键有专门的复位电路及 专一的复位功能外,其它按键都是以开关状态来设置控制功能 或输入数据的。当所设置的功能键或数字键按下时,计算机应 用系统应完成该按键所设定的功能,键信息输入是与软件结构 密切相关的过程。 对于一组键或一个键盘,总有一个接口电路与CPU相连。 CPU可以采用査询或中断方式了解有无将键输入,并检查是哪 个键按下,将该键号送入累加器ACC,然后通过跳转指令转 入执行该键的功能程序,执行完后再返回主程序
2.键输入原理 在单片机应用系统中,除了复位按键有专门的复位电路及 专一的复位功能外,其它按键都是以开关状态来设置控制功能 或输入数据的。当所设置的功能键或数字键按下时,计算机应 用系统应完成该按键所设定的功能,键信息输入是与软件结构 密切相关的过程。 对于一组键或一个键盘,总有一个接口电路与CPU相连。 CPU可以采用查询或中断方式了解有无将键输入,并检查是哪 一个键按下,将该键号送入累加器ACC,然后通过跳转指令转 入执行该键的功能程序,执行完后再返回主程序
3.按键结构与特点 微机键盘通常使用杋械触点式按键开关,其主要功能是把 机械上的通断转换成为电气上的逻辑关系。也就是说,它能提 供标准的TIL逻辑电平,以便与通用数字系统的逻辑电平相容。 机械式按键再按下或释放时,由于机械弹性作用的影响, 通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来 其抖动过程如图72所示,抖动时间的长短与开关的机械特性有 关,一般为5~10ms 键按下 前沿抖动 后沿抖动 图171按键触点的机械抖动闭合 稳定
3.按键结构与特点 微机键盘通常使用机械触点式按键开关,其主要功能是把 机械上的通断转换成为电气上的逻辑关系。也就是说,它能提 供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。 机械式按键再按下或释放时,由于机械弹性作用的影响, 通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。 其抖动过程如图7.2所示,抖动时间的长短与开关的机械特性有 关,一般为5∼10 ms。 图17.1 按键触点的机械抖动 闭合 稳定 键按下 前沿抖动 后沿抖动
弗原創IT教育中心 在触点抖动期间检测按键的通与断状态,可能导致判断出 错,即按键一次按下或释放被错误地认为是多次操作,这种情 况是不允许出现的。为了克服按键触点机械抖动所致的检测误 判,必须采取去抖动措施。这一点可从硬件、软件两方面予以 考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采 用软件去抖。 在硬件上可采用在键输出端加RS触发器(双稳态触发器)或 单稳态触发器构成去抖动电路。图7.3是一种由RS触发器构成 的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任 何影响
在触点抖动期间检测按键的通与断状态,可能导致判断出 错,即按键一次按下或释放被错误地认为是多次操作,这种情 况是不允许出现的。为了克服按键触点机械抖动所致的检测误 判,必须采取去抖动措施。这一点可从硬件、软件两方面予以 考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采 用软件去抖。 在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或 单稳态触发器构成去抖动电路。图7.3是一种由R-S触发器构成 的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任 何影响
弗原創IT教育中心 VCC 4.7k2 47k (+5V) & b & 图172双稳态去抖电路
& & VCC (+5 V) Q a b 4.7 kΩ 4.7 kΩ 图17.2 双稳态去抖电路
弗原創IT教育中心 电路工作过程如下:按键未按下时,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=0,使Q=1,双 稳态电路状态发生翻转,输出Q重新返回原状态。由此可见,键 盘输出经双稳态电路之后,输出已变为规范的矩形方波
电路工作过程如下:按键未按下时,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 = 0,使Q = 1,双 稳态电路状态发生翻转,输出 Q重新返回原状态。由此可见,键 盘输出经双稳态电路之后,输出已变为规范的矩形方波
弗原創IT教育中心 软件上采取的措施是:在检测到有按键按下时,执行 个10ms左右(具体时间应视所使用的按键进行调整)的延时 程序后,再确认该键电平是否仍保持闭合状态电平,若仍保 持闭合状态电平,则确认该键处于闭合状态。同理,在检测 到该键释放后,也应采用相同的步骤进行确认,从而可消除 抖动的影响。 4.按键编码 组按键或键盘都要通过IO口线查询按键的开关状态。 根据键盘结构的不同,采用不同的编码。无论有无编码,以 及采用什么编码,最后都要转换成为与累加器中数值相对应 的键值,以实现按键功能程序的跳转
软件上采取的措施是:在检测到有按键按下时,执行一 个10 ms左右(具体时间应视所使用的按键进行调整)的延时 程序后,再确认该键电平是否仍保持闭合状态电平,若仍保 持闭合状态电平,则确认该键处于闭合状态。同理,在检测 到该键释放后,也应采用相同的步骤进行确认,从而可消除 抖动的影响。 4. 按键编码 一组按键或键盘都要通过I/O口线查询按键的开关状态。 根据键盘结构的不同,采用不同的编码。无论有无编码,以 及采用什么编码,最后都要转换成为与累加器中数值相对应 的键值,以实现按键功能程序的跳转
弗原創IT教育中心 5.编制键盘程序 个完善的键盘控制程序应具备以下功能: )检测有无按键按下,并釆取硬件或软件措施,消除键盘 按键机械触点抖动的影响。 (2)有可靠的逻辑处理办法。每次只处理一个按键,其间对 任何按键的操作对系统不产生影响,且无论一次按键时间有多 长,系统仅执行一次按键功能程序。 (3)准确输出按键值(或键号),以满足跳转指令要求
5. 编制键盘程序 一个完善的键盘控制程序应具备以下功能: (1) 检测有无按键按下,并采取硬件或软件措施,消除键盘 按键机械触点抖动的影响。 (2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对 任何按键的操作对系统不产生影响,且无论一次按键时间有多 长,系统仅执行一次按键功能程序。 (3) 准确输出按键值(或键号),以满足跳转指令要求
弗原創IT教育中心 1712独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采 用独立式按键结构。 1.独立式按键结构 独立式按键是直接用IO口线构成的单个按键电路,其特 点是每个按键单独占用一根IO口线,每个按键的工作不会影响 其它IO口线的状态。独立式按键的典型应用如图74所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必 须占用一根IO口线,因此,在按键较多时,IO口线浪费较 大,不宜采用
17.1.2 独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采 用独立式按键结构。 1. 独立式按键结构 独立式按键是直接用I/O口线构成的单个按键电路,其特 点是每个按键单独占用一根I/O口线,每个按键的工作不会影响 其它I/O口线的状态。独立式按键的典型应用如图7.4所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必 须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较 大,不宜采用