22 键盘接口技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘接口电路可分为编码键盘和非编码键盘两种 类型。编码键盘采用硬件编码电路来实现键的编码, 每按下一个键,键盘便能自动产生按键代码。编码键 盘主要有BCD码键盘、ASCII码键盘等类型。非编码 键盘仅提供按键的通或断状态, 按键代码的产生与识 别由软件完成。
编码键盘的特点是使用方便,键盘码产生速度 快,占用CPU时间少,但对按键的检测与消除抖 动干扰是靠硬件电路来完成的,因而硬件电路复 杂、成本高。而非编码键盘硬件电路简单,成本 低,但占用CPU的时间较长。
(2)矩阵式键盘接口电路
键盘与CPU的接口可采用并行端口8255A、 锁存器或缓冲器一类。下图给出了一种8×8非 编码矩阵式键盘的接口电路。行输出电路由 行扫描锁存器74LS273、 反相器与行线X0~ X7 连 接 组 成 , 列 输 入 电 路 由 三 态 缓 冲 器 74LS244与列线Y0~Y7以及上拉电阻组成。X、 Y线的每一个交叉处跨接一个键,其键值分别 是十进制数的01,02,……,64。该键盘的 接口地址为PORT1。
键盘中断服务子程序,与查询方式相似,在保护现 场后,首先调用100mS延时子程序去除抖动,然后 依次查键号,并转入键功能处理程序,最后恢复现场、 中断返回。显然,查询顺序代表了按键的排队优先级。
采用中断法时,CPU对按键而言是被动方式,在无 键按下时不占用CPU时间,因而CPU有更多的时间 执行其他程序。
(1)矩阵式键盘的结构组成
矩阵式键盘又叫行列式键盘,是用I/O口 线组成的行、列矩阵结构,在每根行线与 列线的交叉处,二线不直接相通而是通过 一个按键跨接接通。采用这种矩阵结构只 需M根行输出线和N根列输入线,就可连接 M×N个按键。通过键盘扫描程序的行输出 与列输入就可确认按键的状态,再通过键 盘处理程序便可识别键值。
Baidu Nhomakorabea
+5V
D0
S0
D1
S1
D2
S2
独立式键盘结构原理
图 5-4 独立式键盘结构原理
开始
N
有键闭合否?
Y
延时100 ms 消除键抖动
N
有键闭合否?
Y
D0=0?
Y
S0键功能程序
N
D1=0?
Y
S1键 功能程序
N
N
D2=0?
Y
S2键 功能程序
独立式键盘查询法程序流程图
图 5-5 独立式键盘查询法程序流程图
(2)中断法接口电路
响。同理,按键S断开时,即使出现抖动,由于C的放
电未是延施施迟加加过 滤滤程 波波, 电电也 路路会 含后消有消除前除按沿抖键抖动抖动的动、波的后形影沿。响抖。动图 的中 波, 形,V1V是2
(Di) Vo
Vi R2
R1
+5V
S
V1 (Di) V2
滤波延时消抖电路
图 5-3 滤波延时消抖电路
2.软件方法
❖ 该键盘扫描及键处理程序流程图如图所示,其程序 如下:
键值寄存器清0
输出所有行为低电平
N
有键按下否? Y
延时100ms
输出所有行为低电平
N
有键按下吗? Y
输出某行为低电平
此行有键按下? N
行键值加08
Y
求出下一行为低电平
N
各行扫描完? Y
返回
N
列键值加1 列值右移1位
进位位为0吗? Y
计算键值 键值送缓冲单元
一 键盘的抖动干扰
由于机械触点的弹性振动,按键在按下时不会 马上稳定地接通而在弹起时也不能一下子完全地 断开,因而在按键闭合和断开的瞬间均会出现一 连串的抖动,这称为按键的抖动干扰,其产生的 波形如图所示,当按键按下时会产生前沿抖动, 当按键弹起时会产生后沿抖动。这是所有机械触 点式按键在状态输出时的共性问题,抖动的时间 长短取决于按键的机械特性与操作状态,一般为 10~100ms,此为键处理设计时要考虑的一个重 要参数。
1.硬件方法
硬件方法是设计一个滤波延时电路或单稳态电路等硬 件的间电滤。路波按来 延 键避 时S未开 消按按 抖下键 电时的路,抖,电动设容时置两间在端。按电下键压图S为与是C0由,PUR即2数和与据C非线组门D成输i之
入能启于充时电门电V突只i为压的延变要0, 开 迟, 使,门 启 时充 之输的 电 间电 大出输 压 取电 于V出 时 决压或o为,于等VV1io在与于R将。1充非1、不当0电门R会0S2m按时的改和s下间输变C即值时内出,可的,未V直避o大由达到才开小于到充变按,C与电为键两电非电0抖端,路门压动电这设的V的压段i计开大影不
2.2 键盘接口技术
本节要点
1.按键的抖动干扰及其解决方法。 2. 独立式键盘的结构原理及其接口电路。 3.矩阵式键盘的结构原理及其接口电路。
引言
在计算机控制系统中,除了与生产过程 进行信息传递的过程输入输出设备以外, 还有与操作人员进行信息交换的常规输入 设备和输出设备。键盘是一种最常用的输 入设备,它是一组按键的集合,从功能上 可分为数字键和功能键两种,作用是输入 数据与命令,查询和控制系统的工作状态, 实现简单的人机对话。
矩阵式键盘接口电路
❖ 当键盘中无任何键按下时,所有的行线和列线被断开且相互
独键立所,在输的入行线线Y与0列~线Y7接列通都,为因高此电,平该;列当线有的任电意平一取键决按于下该时键,则所该在 的行线。基于此,产生了“行扫描法”与“线反转法”两种识别 方法。
❖ 行扫描法又称逐行零扫描查询法,即逐行输出行扫描信号 “0”,使各行依次为低电平,然后分别读入列数据,检查此(低 电平)行中是否有键按下。如果读得某列线为低电平,则表示此 (低电平)行线与此列线的交叉处有键按下,再对该键进行译码 计算出键值,然后转入该键的功能子程序入口地址;如果没有任 何一根列线为低电平,则说明此(低电平)行没有键按下。接着进 行下一行的“0”行扫描与列读入,直到8行全部查完为止,若无
键按下则返回。
❖ 有时为了快速判断键盘中是否有键按下,也可先将全部行线 同时置为低电平,然后检测列线的电平状态,若所有列线均为高 电平,则说明键盘中无键按下,立即返回;若要有一列的电平为
低,则表示键盘中有键被控下,然后再如上那样进行逐行扫描。
(3)矩阵键盘的程序设计
在计算机控制系统中,键盘扫描只是 CPU工作 的一部分。因此在设计键盘扫描程序时,必须要保 证键盘操作的实时性,又不能占有CPU太多的时 间,还要充分考虑到抖动干扰的消除。一般可根据 情况选用编程扫描、定时扫描或中断扫描中的一种 方式。
键按下
键释放
前沿抖动
闭合稳定
后沿抖动 释放稳定
二 抖动干扰的消除
按键的抖动是毫秒级的,而计算机处理速 度则是微秒级的,所以这种抖动对于人来说 是感觉不到的,但是对于计算机则是完全感 觉得到的。这种抖动就会造成按一次键产生 的开关状态被CPU误读几次。为了使CPU能 正确地读取按键状态,必须在按键闭合或断 开时,消除产生的前沿或后沿抖动,去抖动 的方法有硬件方法和软件方法两种。
❖ 例如跨接在X2行与Y1列的18键按下,其键值计算 方法如下:第一次“0”行扫描X0行,无键按下, CL=00+08=08,接下来扫X1行,仍无键按下,加08 并进行DAA修正,CL=08+08=16,再扫X2行,此 时读入的列值不等于FFH即表明有键按下,则CL=16 不变。然后转求列值,列值寄存器先加1再把读入的列 值循环移位,由于按下的键在Y1列,所以需移位两次 才能移出0值,因此DL=02,然后将行值寄存器与列 值寄存器之值相加,并进行DAA修正,得到 AL=CL+DL=16+02=18,即键值为18。
+5V
8088
8255A
D7 CPU D0
D7 PA0
PA1
D0
PA2 PA3
S0 S1 S2
RD INTR
RD PA4
INTRa
PC3 PC4
PA5 PA6
PA7
INT
IR3
8259A
STBa
独图立5式-6 键独立盘式中键断盘中法断接法接口口电电路路
工作过程如下:当CPU对8255A初始化后,CPU 即执行主程序。当按下S0键即表示要进入自动控制状 态,此时与之相连的I/O口线呈现为低电平的同时, 与非门输出为高电平,经反相器变为低电平,使 8255A端口A的选通输入信号PC4 有效,则PA0~ PTASIT2时引间脚,接8收2并55存A入的3P个C3按发键出的IN“T0R”a或中“断1请”状求态信,号经, 经中断控制器8259A向CPU申请中断,CPU响应中 断后,即转到中断服务程序中。中断服务程序依次查 询按键的通断状态,当查询到是自动/手动(即S0=0) 时,则转到自动/手动控制子程序的入口地址,从而 使系统进入自动控制状态。如果没有键按下,则相应 的I/O口线均为高电平,也不会产生中断信号,CPU 继续运行主程序。
三、 非编码键盘
非编码键盘分为独立式键盘和矩阵键盘。 在计算机控制系统中,有时候只需要使用 简单的键盘就能完成操作输入,按键的数 量较少可采用独立式键盘。当按键的数目 较多时,将增加输入口线,为了减少输入 口线,可采用矩阵键盘。
1、独立式键盘工作原理及接口
(1)查询法接口电路
现以3个按键为例,下图即为独立式键盘查询 法与合接C时口P,U电数的路据数。线据按直线键接DS0接0、、地DS,11、、因DS而22分相C别连PU通,读过当入上按D拉键i=电S0i阻闭; 当按键Si断开时,数据线通过上拉电阻接到正 电源,因而CPU读入Di=1。该接口电路实现的 功能为:查询检测是否有键按下,如有键闭合, 则消除抖动,再判断键号,然后转入相应的键 处理。其程序流程如图所示。采用查询法时, 必须保证CPU每隔一定时间主动地去扫描按键 一次,该扫描时间间隔应小于两次按键的时间 间隔,否则会有按键不响应的情形。显然这种 方式占用CPU时间比较多。
转功能键入口地址
矩阵键盘扫描及键处理程序流程图
图 5-8
矩阵式键盘扫描及键处理程序流程图
程序设计
KEY: MOV AL,0
MOV CL,AL
;行值寄存器CL和列值寄存器DL清零
MOV DL,AL
MOV AL,0FFH
OUT PORT1,AL ;使所有行线为低电平
软件方法是指编制一段时间大于100ms的延时程序, 在第一次检测到有键按下时,执行这段延时子程序 使键的前沿抖动消失后再检测该键状态,如果该键 仍保持闭合状态电平,则确认为该键已稳定按下, 否则无键按下,从而消除了抖动的影响。同理,在 检测到按键释放后,也同样要延迟一段时间,以消 除后沿抖动,然后转入对该按键的处理。
上述分析说明:独立式键盘接口电路简单灵活,软 件结构简单,但每个按键必须占用一根I/O口线,在 按键数量较多时,需要占用较多的I/O口线。比如64 个按键,需要有64根线,不仅连线复杂,查询按键 的时间也较长。故这种键盘电路只适合于按键数量比 较少的小型控制系统或智能控制仪表中。
2、矩阵键盘的工作原理及接口
仍以3个按键为例,下图是一个炉温控制系统的功 能键分配图,S0、S1、S2分别代表自动/手动切换、 炉温参数显示和炉温参数打印功能。这是在上述查 询法接口电路的基础上,再把按键S0、S1、S2的数 据输出线经过与非门和反相器后与8255A的选通输 入信号PC4相连,8255A的PC3发出中断请求信号 经中断控制器8259A与CPU的中断请求引脚相连, 这是一种典型的中断法键盘接口电路。
下面来考虑扫描程序的编写与准备。逐行输出行 扫描信号“0”,即是CPU依次使行线X0~X7为低 电0102平HH( (,XX其14线 线输) )出、 、数02据04HH代((码XX分25线线别))为、、004108HHH(( (XXX036线线 线)) )、 、、 80H(X7线)。
为消除按键的抖动干扰,程序中需调用延时 100ms的子程序, 以便认定确有键按下再识别其键值 求十进制键值的方法是分别设一个行值寄存器CL和 列值寄存器DL。接口电路中跨接在行列线上的64个 键,由于同一列相邻行之间相隔数8,所以每进行一 次“0”行扫描后,如果此行无键按下,则行寄存器 CL应加08再进行下一行的“0”行扫描;若有键按下 则不加08而转求列值,由于列值比键值小1,如第一 行第一列的键按下时列值Y0(即数据位D0)=0比01键 值小1,所以列值寄存器DL应先加1,然后将读入的 列值循环右移,判断进位位CF是否等零即有否键按 下,若无键按下,再继续加1、右移、判断,重复上 述过程直到有键按下。最后把行值和列值相加并进 行DAA修正,即可得到所求的十进制键值。