键盘及接口技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D.键输入控制 . 完成对键盘的自动扫描,锁存 锁存RL0-7的键输入信息。 的键输入信息。 完成对键盘的自动扫描 锁存 的键输入信息 搜索闭合键,去抖动 去抖动.并将键输入数据写入键输入缓冲 搜索闭合键 去抖动 并将键输入数据写入键输入缓冲 器(FIFORAM)中. 中 E.FIFORAM和显示 和显示RAM及显示地址寄存器 . 和显示 及显示地址寄存器 FIFORAM为8*8先进先出的键输入缓冲器 用以 先进先出的键输入缓冲器, 为 先进先出的键输入缓冲器 存放键值。 存放键值。 显示RAM为16*8显示数据缓冲器 用以存放要显 显示数据缓冲器,用以存放要显 显示 为 显示数据缓冲器 示的数据。 示的数据。 F.显示地址寄存器 . 用于存放CPU当前正在读写的显示 当前正在读写的显示RAM单元地 用于存放 当前正在读写的显示 单元地 它可以由命令设定, 址,它可以由命令设定,也可以设置成每次读出或 写入之后自动递增。 写入之后自动递增。
实现编码的方法一般采用查表的 方法来实现,先设计一个一维表, 方法来实现,先设计一个一维表,让 各键盘的行、 各键盘的行、列组合代码按键的顺序 放在表内,如表3.3.1所示,设计软件 放在表内,如表 所示, 所示 时,只要将得到代码与表中的代码从 第一个开始比较, 第一个开始比较,并设一计数器其初 值为0,每比较一个,计数器加1, 值为 ,每比较一个,计数器加 ,当 比较相同时, 比较相同时,计数器的值便是所需的 最终代码。 最终代码 若行、列数大于 的话 的话, 若行、列数大于4的话,在进行编 码之前, 码之前,必须将读入的行值或输出的 列值进行转换, 列值进行转换,转换成对应的行号或 列号,且要小于“ ,否则无法将行、 列号,且要小于“F",否则无法将行、 列值组合成一个字节的代码。 列值组合成一个字节的代码。
消抖法: 消抖法: 硬件消抖法 软件消抖法
从键盘的排列形式上看键盘可以分成: 从键盘的排列形式上看键盘可以分成: 独立式键盘 矩阵式键盘 一、独立式键盘接口设计 独立式键盘就是各按键相互独立, 独立式键盘就是各按键相互独立,每个按键各接一根输 入线, 入线,一根输入线上的按键工作状态不会影响其它输入线上 的工作状态。因此, 的工作状态。因此,通过检测输入线的电平状态可以很容易 判断哪个按键被按下了。 判断哪个按键被按下了。 独立式键盘接口方式:并行和串行。 独立式键盘接口方式:并行和串行。 1. 并行方式 按键的一端接地,另一端接上拉电阻后接输入端, 按键的一端接地,另一端接上拉电阻后接输入端,当按 键未按下时,由于上拉电阻的作用使输入端确保为高电平, 键未按下时,由于上拉电阻的作用使输入端确保为高电平, 当按键按下时,输入端与地短接而为低电平。 当按键按下时,输入端与地短接而为低电平。
补充说明: 补充说明: 1、除用串行口方式 来接收键盘状态外,还可 来接收键盘状态外, 、除用串行口方式0来接收键盘状态外 用普通P1口来接收数据 口来接收数据, 用普通 口来接收数据,但需编制相应的软 件来模拟CLK时钟并串行接收数据。 时钟并串行接收数据。 件来模拟 时钟并串行接收数据 2、当多于8个按键时 可用多个74LS165串行 、当多于 个按键时,可用多个 串行 个按键时 可用多个 起来使用,下一级74LS165的QH接上级的 起来使用,下一级 的 接上级的 Sin输入端。 输入端。 输入端 3、一般操作键盘与主机位置有一定的距离, 、一般操作键盘与主机位置有一定的距离, 采用串行接口方式可减少主机与键盘板之间 的引线数。 的引线数。
(二).引脚功能说明 ).引脚功能说明 DB0-7:数据总线; :数据总线; CLK:时钟输入线,用于产生内 :时钟输入线, 部定时; 部定时; RES:复位,高电平有效;复位 :复位,高电平有效; 设置为: 后8279设置为: 设置为 16位显示、左边输入、编 位显示、 位显示 左边输入、 码扫描键盘,双键封锁、 码扫描键盘,双键封锁、时钟 系数为31。 系数为 。 CS:片选; :片选; A0:地址输入; :地址输入; A0 =“1”:命令或状态信息 : “0”:数据信息 (2个口地 : 个口地 址)
二、矩阵式键盘及接口设计 由行线和列线组成,按键位于行、 由行线和列线组成,按键位于行、列的交叉点上
1、按键的识别及偏码 、 无按键按下时: 无按键按下时 行线由于上拉电阻的作用而处于高电平状态 ; 有按键按下时: 列线电平如果为高,则行线电平也为高; 有按键按下时 列线电平如果为高,则行线电平也为高 列线电平为低, 则行线电平为低; 列线电平为低, 则行线电平为低 矩阵式键盘按键识别的方法如下: 矩阵式键盘按键识别的方法如下: a、通过让所有列线均为低电平,检查行线电平是否均为高电 、通过让所有列线均为低电平, 平的办法来判断是否有键按下。 平的办法来判断是否有键按下。 b、如果有按键按下,再逐列让列线为低电平,通过读入行线 、如果有按键按下,再逐列让列线为低电平, 的电平状态来识别哪个按键按下。 的电平状态来识别哪个按键按下。 通过上述办法,可以得到按下键的行值和列值,将它们 通过上述办法,可以得到按下键的行值和列值, 组合成一个字节后便可以得到相应按键的代码,但这一代码数 组合成一个字节后便可以得到相应按键的代码 但这一代码数 值的离散性较大
3、用8279实现对矩阵键盘的接口 、 实现对矩阵键盘的接口
Intel8279是一种通用可编程键盘,显示器接口 是一种通用可编程键盘, 是一种通用可编程键盘 芯片,除完成LED显示控制外,还可完成矩阵键盘 显示控制外, 芯片,除完成 显示控制外 的输入控制。 的输入控制。 键盘输入部分提供一种扫描工作方式, 键盘输入部分提供一种扫描工作方式,最多可 个按键的矩阵键盘连接, 与64个按键的矩阵键盘连接,能对键盘不断扫描, 个按键的矩阵键盘连接 能对键盘不断扫描, 自动消抖,自动识别出按下的键并给出编码, 自动消抖,自动识别出按下的键并给出编码,能对 双键或n键同时按下实行保护 键同时按下实行保护。 双键或 键同时按下实行保护。 Intel8279内部结构主要由 控制和数据缓冲 内部结构主要由I/O控制和数据缓冲 内部结构主要由 时序控制逻辑、扫描计数器、键输入控制、 器、时序控制逻辑、扫描计数器、键输入控制、 FIFORAM和显示 和显示RAM及显示地址寄存器等部分组 和显示 及显示地址寄存器等部分组 成。
3.3 键盘及接口技术 分类: 分类: 机械按键 触模按键 导电橡胶式键盘 对于机械式键盘来说,由于机械开关的撞出作用, 对于机械式键盘来说,由于机械开关的撞出作用,开关在 闭合或断开时开关的动片会产生抖动,抖动时间约5ms~10ms。 闭合或断开时开关的动片会产生抖动,抖动时间约 ~ 。 拔盘开关
(一) Intel8279结构框图 : 一
A.I/O控制和数据缓冲器 . 控制和数据缓冲器 数据缓冲器用于完成CPU与8279传递信息 命令数据与状 传递信息(命令数据与状 数据缓冲器用于完成 与 传递信息 态信息)。 控制电路以 控制电路以CS、 、 、 态信息 。I/O控制电路以 、A0、RD、WR线输入信息对内 线输入信息对内 部寄存器与缓冲器进行读写。 部寄存器与缓冲器进行读写。 B.时序控制逻辑 . 时序控制逻辑用于控制键盘和显示器的工作方式及由 CPU编程的其它操作方式。其中它包含了一个定时计数器。 编程的其它操作方式。 编程的其它操作方式 其中它包含了一个定时计数器。 它对CLK输入时钟信号进行分频以产生基本的 输入时钟信号进行分频以产生基本的100KHz的内 它对 输入时钟信号进行分频以产生基本的 的内 部计数信号, 部计数信号,为键盘扫描提供适当的逐行扫描频率和显示扫 描时间。 此时扫描时间为 此时扫描时间为5.1mS,去抖动时间为 描时间。(此时扫描时间为 ,去抖动时间为10.3mS) C.扫描计数器 . 扫描计数器有两种工作方式, 扫描计数器有两种工作方式,即外译码与内译码 外译码方式(编码方式):计数器以2进制方式计数 ):计数器以 进制方式计数。 外译码方式(编码方式):计数器以 进制方式计数。4 位计数状态从扫描线SL0-3输出。经外译码器译码出 位扫 输出。 位计数状态从扫描线 输出 经外译码器译码出16位扫 描线。 常用 常用) 描线。(常用 内译码方式(译码方式):计数器低2位经内部译码器译 内译码方式(译码方式):计数器低 位经内部译码器译 ):计数器低 输出4位扫描线 码,从SL0-3输出 位扫描线。 从 输出 位扫描线。
;设串行口方式 允许并启动接收 设串行口方式0,允许并启动接收 设串行口方式 ;等待接收完一帧 等待接收完一帧 ;读入数据 读入数据 ;判有键按下否 判有键按下否 ;无键按下,A=FFH返回 无键按下, 无键按下 返回 ;延时 延时10ms 延时
;设键值初值为 设键值初值为00H 设键值初值为 ;设循环次数为 次 设循环次数为8次 设循环次数为 ;将A右移一次 将 右移一次 ;CY=0? ;cy≠0,键值加 键值加1 键值加 ;继续判下位是否为 继续判下位是否为0 继续判下位是否为 ;都不为 ,说明无键按下 都不为0, 都不为 ;键值送累加器 键值送累加器A 键值送累加器 ;返回 返回
RD:读; : WR:写; : IRQ:中断请求输出,高电平有效;在键盘工作方式 :中断请求输出,高电平有效; 中有健输入数据时为高。 下FIFORAM中有健输入数据时为高。 中有健输入数据时为高 SL0-3:扫描输出线; :扫描输出线; RL0-7:数据输入线 (行或列数据输入 ; 行或列数据输入); : 行或列数据输入 SHIFT:换档输入线 : (可使每个键定义为上下档两功能 ; 可使每个键定义为上下档两功能); 可使每个键定义为上下档两功能 CNTL/STB:控制 选通输入线; 选通输入线; :控制/选通输入线 在键盘方式中作为控制输入。 在键盘方式中作为控制输入。 在选通输入方式中作为选通输入。 在选通输入方式中作为选通输入。
2、用并行I/O口实现矩阵式键盘接口 、用并行 口实现矩阵式键盘接口
键盘进行扫描管理的流程 :
还可采用以下方法实现对矩阵式键盘的接口: 还可采用以下方法实现对矩阵式键盘的接口: 口构成矩阵式键盘接口电路, ⑴、直接采用8031的P1口构成矩阵式键盘接口电路, 直接采用 的 口构成矩阵式键盘接口电路 口只有8根 因P1口只有 根I/ O线,可构成的最大键盘为 口只有 线 可构成的最大键盘为4X4矩 矩 阵式键盘。 阵式键盘。 代替8255构成矩 ⑵、用8155或74LS273和74LS244代替 或 和 代替 构成矩 阵式键盘接口电路。 阵式键盘接口电路。 的串行口线RX、 ⑶、用8031的串行口线 、TXD和74LS164扩展列 的串行口线 和 扩展列 扫描线与P1口构成键盘接口电路 口构成键盘接口电路, 扫描线与 口构成键盘接口电路,这种方式可节省 CPU的I/O线。 的 线 ⑷、用74LS138译码器扩展列扫描线构成矩阵式键盘 译码器扩展列扫描线构成矩阵式键盘 的接口电路,目的也是节省CPU的I/O口线。 口线。 的接口电路,目的也是节省 的 口线
除采用P1口作为输入口外,还可以用扩展 口构成并行 除采用 口作为输入口外,还可以用扩ห้องสมุดไป่ตู้I/O口构成并行 口作为输入口外 式键盘接口电路,如用8255扩展 口,用74LS244扩展输入 式键盘接口电路,如用 扩展I/O口 扩展输入 扩展 口等。 口等。
2. 串行接口方式
Read-Kay: MOV SCON,#00010000B WAIT: JNB RI,WAIT CLR RI MOV A,SBUF CJNE A,#FFH,LP1 RET LP1: LCALL dalay10ms MOV SCON #00010000H Wait1: JNB RI,WAIT1 CLR RI MOV A,SBUF MOV R0,#00H MOV R7,#08H LP2: RRC A JNC LP3 INC R0 DJNZ R7,LP2 MOV A,#OFFH RET LP3: MOV A,R0 RET