欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第五章键盘及其接口技术ppt课件.ppt

    • 资源ID:1886680       资源大小:808.50KB        全文页数:77页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第五章键盘及其接口技术ppt课件.ppt

    第五章 键盘及其接口技术,本章要点1按键的抖动干扰及其解决方法。2独立式键盘的结构原理及其接口电路。3矩阵式键盘的结构原理及其行扫描法。4编码器及其编码键盘接口电路。,本章主要内容,引言5.1 键盘输入电路5.2 非编码独立式键盘5.3 非编码矩阵式键盘5.4 编码键盘 本章小结 思考题,引言,在计算机控制系统中,除了与生产过程进行信息传递的过程输入输出设备以外,还有与操作人员进行信息交换的常规输入设备和输出设备。 键盘是一种最常用的输入设备,它是一组按键的集合,从功能上可分为数字键和功能键两种,作用是输入数据与命令,查询和控制系统的工作状态,实现简单的人机对话。 键盘接口电路可分为编码键盘和非编码键盘两种类型。编码键盘采用硬件编码电路来实现键的编码,每按下一个键,键盘便能自动产生按键代码。编码键盘主要有BCD码键盘、ASCII码键盘等类型。非编码键盘仅提供按键的通或断状态, 按键代码的产生与识别由软件完成。,引言,编码键盘的特点是使用方便,键盘码产生速度快,占用CPU时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高。而非编码键盘硬件电路简单,成本低,但占用CPU的时间较长。,5.1 键盘输入电路,主要知识点:5.1.1 键盘的抖动干扰5.1.2 抖动干扰的消除,5.1.1 键盘的抖动干扰,由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰,其产生的波形如图5-1所示,当按键按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为10100ms,此为键处理设计时要考虑的一个重要参数。,链接动画,5.1.2 抖动干扰的消除,按键的抖动会造成按一次键产生的开关状态被CPU误读几次。为了使CPU能正确地读取按键状态,必须在按键闭合或断开时,消除产生的前沿或后沿抖动,去抖动的方法有硬件方法和软件方法两种。 1硬件方法 硬件方法是设计一个滤波延时电路或单稳态电路等硬件电路来避开按键的抖动时间。图5-2是由R2和C组成的滤波延时消抖电路,设置在按键S与CPU数据线Di之间。按键S未按下时,电容两端电压为0,即与非门输入Vi为0,输出Vo为1。当S按下时,由于C两端电压不能突变,充电电压Vi在充电时间内未达到与非门的开启电压,门的输出Vo将不会改变,直到充电电压Vi大于门的开启电压时,与非门的输出Vo才变为0,,图5-2 滤波延时消抖电路,链接动画,这段充电延迟时间取决于R1、R2和C值的大小,电路设计时只要使之大于或等于100ms即可避开按键抖动的影响。同理,按键S断开时,即使出现抖动,由于C的放电延迟过程,也会消除按键抖动的影响 图中,V1是未施加滤波电路含有前沿抖动、后沿抖动的波形,V2是施加滤波电路后消除抖动的波形。2软件方法 软件方法是指编制一段时间大于100ms的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。,5.2 非编码独立式键盘,主要知识点:5. 2.1 查询法接口电路5. 2.2 中断法接口电路,5. 2.1 查询法接口电路,现以3个按键为例,图5-3即为独立式键盘查询法接口电路。按键S0、S1、S2分别通过上拉电阻与CPU的数据线D0、D1、D2相连,当按键Si闭合时,数据线直接接地,因而CPU读入Di=0;当按键Si断开时,数据线通过上拉电阻接到正电源,因而CPU读入Di=1。 该接口电路实现的功能为:查询检测是否有键按下,如有键闭合,则消除抖动,再判断键号,然后转入相应的键处理。其程序流程如图5-4所示。 采用查询法时,必须保证CPU每隔一定时间主动地去扫描按键一次,该扫描时间间隔应小于两次按键的时间间隔,否则会有按键不响应的情形。显然这种方式占用CPU时间比较多。,图5-3 独立式键盘结构原理,图5-4独立式键盘查询法程序流程图,链接动画,5.2.2中断法接口电路,仍以3个按键为例,图5-5是一个炉温控制系统的功能键分配图,S0、S1、S2分别代表自动/手动切换、炉温参数显示和炉温参数打印功能。在上述查询法接口电路的基础上,再把按键S0、S1、S2的数据输出线经过与非门和反相器后与8255A的选通输入信号PC4相连,8255A的PC3发出中断请求信号经中断控制器8259A与CPU的中断请求引脚相连,这是一种典型的中断法键盘接口电路。,图5-5独立式键盘中断法接口电路,链接动画,当CPU对8255A初始化(8255A的A口工作于方式1 输入)后,CPU即执行主程序。当按下S0键即表示要进入自动控制状态,此时与之相连的I/O口线呈现为低电平的同时,与非门输出为高电平,经反相器变为低电平,使8255A端口A的选通输入信号PC4 有效,则PA0PA2引脚接收并存入3个按键的“0”或“1”状态,当恢复成高电平后,经TSIT时间,8255A的PC3发出INTRa中断请求信号,经中断控制器8259A向CPU申请中断,CPU响应中断后,即转到中断服务程序中。中断服务程序依次查询按键的通断状态,当查询到是自动/手动(即S0=0)时,则转到自动/手动控制子程序的入口地址,从而使系统进入自动控制状态。如果没有键按下,则相应的I/O口线均为高电平,也不会产生中断信号,CPU继续运行主程序。,工作过程,键盘中断服务子程序,与查询方式相似,在保护现场后,首先调用100mS延时子程序去除抖动,然后依次查键号,并转入键功能处理程序,最后恢复现场、中断返回。显然,查询顺序代表了按键的排队优先级。 采用中断法时,CPU对按键而言是被动方式,在无键按下时不占用CPU时间,因而CPU有更多的时间执行其他程序。 上述分析说明:独立式键盘接口电路简单灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,需要占用较多的I/O口线。比如64个按键,需要有64根线,不仅连线复杂,查询按键的时间也较长。故这种键盘电路只适合于按键数量比较少的小型控制系统或智能控制仪表中。,5.3 非编码矩阵式键盘,主要知识点:5.3.1 矩阵式键盘的结构组成5.3.2 矩阵式键盘的程序设计,5.3.1 矩阵式键盘的结构组成,矩阵式键盘又叫行列式键盘,是用I/O口线组成的行、列矩阵结构,在每根行线与列线的交叉处,二线不直接相通而是通过一个按键跨接接通。采用这种矩阵结构只需M根行输出线和N根列输入线,就可连接MN个按键。通过键盘扫描程序的行输出与列输入就可确认按键的状态,再通过键盘处理程序便可识别键值。 键盘与CPU的接口可采用并行端口8255A、锁存器或缓冲器一类。图5-6给出了一种88非编码矩阵式键盘的接口电路。行输出电路由行扫描锁存器74LS273、 反相器与行线X0X7连接组成,列输入电路由三态缓冲器74LS244与列线Y0Y7以及上拉电阻组成。X、Y线的每一个交叉处跨接一个键,其键值分别是十进制数的01,02,64。该键盘的接口地址为PORT1。,图5-6 矩阵式键盘接口电路,链接动画,当键盘中无任何键按下时,所有的行线和列线被断开且相互独立,输入线Y0Y7列都为高电平;当有任意一键按下时,则该键所在的行线与列线接通,因此,该列线的电平取决于该键所在的行线。基于此,产生了“行扫描法”与“线反转法”两种识别方法。 行扫描法又称逐行零扫描查询法,即逐行输出行扫描信号“0”,使各行依次为低电平,然后分别读入列数据,检查此(低电平)行中是否有键按下。如果读得某列线为低电平,则表示此(低电平)行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,然后转入该键的功能子程序入口地址;如果没有任何一根列线为低电平,则说明此(低电平)行没有键按下。接着进行下一行的“0”行扫描与列读入,直到8行全部查完为止,若无键按下则返回。 有时为了快速判断键盘中是否有键按下,也可先将全部行线同时置为低电平,然后检测列线的电平状态,若所有列线均为高电平,则说明键盘中无键按下,立即返回;若要有一列的电平为低,则表示键盘中有键被控下,然后再如上那样进行逐行扫描。,5.3.2 矩阵式键盘的程序设计,在计算机控制系统中,键盘扫描只是 CPU工作的一部分。因此在设计键盘扫描程序时,必须要保证键盘操作的实时性,又不能占有CPU太多的时间,还要充分考虑到抖动干扰的消除。一般可根据情况选用编程扫描、定时扫描或中断扫描中的一种方式。 下面来考虑扫描程序的编写与准备。逐行输出行扫描信号“0”,即是CPU依次使行线X0X7为低电平,其输出数据代码分别为01H(X0线)、02H(X1线)、04H(X2线)、08H(X3线)、10H(X4线)、20H(X5线)、40H(X6线)、80H(X7线)。,为消除按键的抖动干扰,程序中需调用延时100ms的子程序, 以便认定确有键按下再识别其键值。 求十进制键值的方法是分别设一个行值寄存器CL和列值寄存器DL。接口电路中跨接在行列线上的64个键,由于同一列相邻行之间相隔数8,所以每进行一次“0”行扫描后,如果此行无键按下,则行寄存器CL应加08再进行下一行的“0”行扫描;若有键按下则不加08而转求列值,由于列值比键值小1,如第一行第一列的键按下时列值Y0(即数据位D0)0比01键值小1,所以列值寄存器DL应先加1,然后将读入的列值循环右移,判断进位位CF是否等零即有否键按下,若无键按下,再继续加1、右移、判断,重复上述过程直到有键按下。最后把行值和列值相加并进行DAA修正,即可得到所求的十进制键值。(计算过程中所有数为压缩型BCD码),(0,8,16,24,32,40,48,56),(1,2,3,4,5,6,7,8),例如跨接在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。 该键盘扫描及键处理程序流程图如图5-7所示,其程序如下:,图 5-7 矩阵式键盘扫描及键处理程序流程图,链接动画,程序设计,MOV AL,0MOV CL,AL ;行值寄存器CL和列值寄存器DL清零MOV DL,ALMOV AL,0FFHOUT PORT1,AL ;使所有行线为低电平IN AL,PORT1 ; 读列键值CMP AL,0FFH ; 检查是否有键按下JZ DONE ; 无键按下转返回CALL DELAY ; 有键按下调延时100mA子程序MOV AL,0FFHOUT PORT1,AL IN AL,PORT1 ; 重复上述扫描,再次确认是否有键按下,KEY:,CMP AL,0FFH JZ DONE ; 无键按下转返回 MOV AH,08 ; 行数08送计数器AH MOV BL,01H ;行扫描初值(即X0线)送BLKEY1:MOV AL,BL OUT PORT1,AL ;输出使某行为低电平 IN AL,PORT1 ; 读入列值 CMP AL,0FFH ; 判断此行是否有键按下 JNZ KEY2 ; 有键按下转KEY2 MOV AL,CL ADD AL,08 ; 无键按下,行值寄存器加08 DAA MOV CL,AL,RCL BL,1 ; 求下一行为低电平的输出代码DEC AH ; 判8行全扫描完了吗JNZ KEY1 ; 若未完转KEY1,继续扫描下一行DONE: IRET ; 若全完则返回KEY2: INC DL ; 列值寄存器加1(与键值对应)RCR AL,1 ; 列值循环右移1位JC KEY2 ; 判断该列是否为1,为1则无键按下继查下一列MOV AL,CL ; 为0则有键按下,获得列值ADD AL,DLDAA ;求键值MOV BUFF,AL ;键值送缓冲单元暂存JMP KEYADR ;转查找功能键的入口地址END KEY ;,对于键盘处理程序来说,求得键值并不是目的。如果该按键是数字键,就应把该键值直接送到显示缓冲区进行键值的数字显示;如果该按键是功能键,则应找到该键子程序的入口地址,转而去执行该键的功能命令。,主要内容,编码键盘电脑键盘原理电脑鼠标原理,5.4 编码键盘,主要知识点:5.4.1 二进制编码器5.4.2 编码键盘接口电路,图5-8 二进制编码键盘接口电路,5.4.1 二进制编码器,具有优先级的二进制8位编码器CD4532B 的真值表见表5-1。表示芯片优先级的输入允许端Ei为“0”时,无论编码器的信号输入I7 I0为何状态,编码器输出全为“0”,芯片处于屏蔽状态,同时Eo为“0”,也屏蔽下一级芯片,工作状态端GS均为“0” ;当输入允许端Ei为“1”时,且编码器的信号输入I7 I0全为“0”时,编码输出也为“0”,但输出允许端Eo为“1”,表明此编码器输入端无键按下,却允许优先级低的相邻编码器处于编码状态;工作状态端GS均为“0”。 该芯片的8个输入端当中,I0的优先级最高,I7的优先级最低。当有多个键按下时,优先级高的被选中,同时自动屏蔽优先级低的各输入端和下一级芯片(使Eo端为“0”)。比如处于正常编码状态即Ei为“1”时,当I0端为“1”,其余输入端无论为“1”或“0”,编码输出均为二进制000,同时GS端为“1”,Eo端为“0”;而当I0端为“0”,当I1端为“1”时,编码输出则为二进制001;以此类推,输入端的键值号与二进制编码输出一一对应。,表5-1 二进制8位编码器CD4532B真值表,5.4.2 编码键盘接口电路,图5-8是一种采用两片CD4532B构成的16个按键的二进制编码接口电路。其中由于U1的Eo作为U2的Ei,所以按键S0的优先级最高,S15的优先级最低。U1和U2的输出O2 O0经或门A3 A1输出,以形成低3位编码D2 D0。而最高位D3则由U2的GS产生,当按键S8 S15中有一个闭合时,其输出为“1”。从而S0 S15中任意一个键被按下,由编码位D3 D0均可输出相应的4位二进制码。,图5-8 二进制编码键盘接口电路,消除键盘按下时产生的抖动干扰,为了消除键盘按下时产生的抖动干扰,该接口电路还设置了由与非门B1、B2、电阻R2、电容C2组成的单稳电路和由或门A4、电阻R1、电容C1组成的延时电路电路中E、F、G、H和I这五点的波形如图5-9所示。由于U1和U2的GS接或门A4的输入端,所以当按下某键时,A4 为高电平,其输出经R1和C1 延时后使G点也为高电位,作为与非门B3 的输入之一。同时,U2的输出信号Eo 触发单稳(B1和B2),在暂稳态持续时间T内,其输出F点为低电位,也作为与非门B3的输入之一。,由于暂稳态期间(T)E点电位的变化(即按键的抖动)对其输出F点电位无影响,所以此时不论G点电位如何,与非门B3 输出(H点)均为高电位。当暂稳延时结束,F点变为高电位,而G点仍为高电位(即按键仍闭合),使得H点变为低电位,并保持到G点变为低电位为止(即按键断开)。也就是说,按下S0 S15 中任意一个按键,就会在暂稳态期间T之后 (恰好避开抖动时间)产生选通脉冲(H点)或STB(I点),作为向CPU申请中断的信号,以便通知CPU读取稳定的按键编码D3D0 。,图 5-9 消抖电路波形图,G=0按键断开,电脑键盘工作原理,IBM PC键盘分为XT, AT, PS/2,USB键盘. PC系列机使用的键盘有83键、84键、101键、102键和104键等多种。XT和AT机的标准键盘分别为83键和84键,而286机以上微机的键盘则 普遍使用101键、102键或104键。83键键盘是最早使用的一种PC机键盘,其键号与扫描码是一致的。这个扫描码被直接发送到主机箱并转换为 ASCII码;84/101/102/104键键盘:高档PC机的出现,键盘功能和按键数目得到了扩充,键盘排列也发生了变化,产生的扫描码与83键键盘的扫描码不同。为了保持PC系列微 机的向上兼容性,需将84/101/102/104键键盘的扫描码转换为83键键盘的扫描码,一般将前者叫作行列位置扫描码,而将后者称为系统扫描码。显 然,对于83键键盘,这两种扫描码是相同的。,PC/XT PC/AT,IBMPC/XT是美国国际商用机器公司(IBM)与1983年3月8日发布了PC的改进型,因为它带有一个容量为10MB的硬盘,这是硬盘第一次成为PC的标准配置。XT预装了DOS2.0系统,支持“文件”的概念并以“目录树”存储文件IBMPC/AT是美国国际商用机器公司(IBM)于1984年发布、1987年停产的个人电脑产品,正式名称是IBM5170PCAT。“AT”是英文“先进技术”(AdvancedTechnology)的缩写,这是由于它引入了标准的16位ISA总线以及采用了当时最新的英特尔80286处理器。,编码形式,键盘是由一组排列成矩阵方式的按键开关组成,通常有编码键盘和非编码键盘两种类型IBM系列个人微型计算机的键盘属于非编码类型。微机键盘主要由单片 机、译码器和键开关矩阵三大部分组成。其中单片机采用了INTEL8048单片微处理器控制,这是一个40引脚的芯片,内部集成了8位 CPU、10248位的ROM、648位的RAM、8位的定时器计数器等器件。,与老式的编码式键盘相比,非编码键盘:,结构要简单许多,省略了复杂的编码电路和蜘蛛网似的走线而且更重要的是,由于非编码式键盘将按键结构和输出键码分离,所以当需要制造不同键位排列的键盘时,不需要重新设计键盘线路,而只要将控制电路中的键位排列表格重新刷新就可以了。例如在德文键盘上,子母“Y”和 “Z”的位置是互调的,那么如果要把一条英文键盘生产线改造成德文键盘生产线,什么都不用改变,只须在控制芯片中刷进一个新的排列表,将“上层导线1下 层导线4”的位置写作“Y”,“Z”字也作同样处理就行了,显然比重新布线要简单了很多。这也就是为什么非编码式键盘大行其道的原因。,由于键盘排列成矩阵格式,被按键的识别和行列位置扫描码的产生,是由 键盘内部的单片机通过译码器来实现的。单片机在周期性扫描行、列的同时,读回扫描信号线结果,判断是否有键按下,并计算按键的位置以获得扫描码。当有键按 下时,键盘分两次将位置扫描码发送到键盘接口;按下一次,叫接通扫描码;释放时再发一次,叫断开扫描码。因此可以用硬件或软件的方法对键盘的行、列分别进 行扫视,去查找按下的键,输出扫描位置码,通过查表转换为ASCII码返回。,扫描识别按键,键盘 在扫描过程中,7位计数器循环计数。当高5位(D6一D2)状态为全“0”时,经译码器在0列线上输出一个“0”,其余均为“1”;而计数器的低二位 (D1D0)通过4选1多路选择器控制03行的扫描。计数器计一个数则扫描一行,计4个数全部行线扫描一遍,同时由计数器内部向D2进位,使另一列线1 变低,行线再扫描一遍。只要没有键按下,多路选择器就一直输出高电平,则时钟一直使计数器循环计数,对键盘轮番扫描。当有一个键被按下时,若扫描到该键所 在的行和列时,多路选择器就会输出一个低电平,去封锁时钟门,使计数器停止计数。这时计数器输出的数据就是被按键的位置码(即扫描码)。,8048利用程序 读取这个键码后,在最高位添上一个“0”,组成一个字节的数据,然后从P22引脚以串行方式输出。在8048检测到键按下后,还要继续对键盘扫描检测,以 发现该键是否释放。当检测到释放时,8048在刚才读出的7位位置码的前面(最高位)加上一个“1”,作为“释放扫描码”,也从 P22引脚串行送出去,以便和“按下扫描码”相区别。送出“释放扫描码”的目的是为识别组合键和上、下档键提供条件。,同时,主机还向键盘发送控制信号,主机CPU响应键盘中断请求时,通过外围接口芯片8255A一5的PA口读取键盘扫描码并进行相应转换处理和暂存;通过PB口的PB6和PB7来控制键盘接口工作。,机械键盘、薄膜接触式键盘、电容键盘。,老机械键盘存在着开关容易损坏、易污染、易老化的缺点,现已基本淘汰。现在基本上用薄膜接触式键盘电容键盘在可靠性上比前者有质的飞跃,使用寿命较长,。,发展历史,早期的键盘是由美国IBM公司推出的,当时采用的计算机键盘为83键键盘。不久IBM又推出了84键的键盘设计标准,将键盘分为三个区,即功能区、打字键 区及负责光标控制和编辑的副键盘区,这种键盘主要区域的划分标准一直沿用至今。随着微软Windows视窗操作系统的广泛应用,IBM公司于1986年首 次推出了101键的标准键盘,除添加了F11、F12两个功能键之外,还在键盘的中部多加了一组专用的光标控制和编辑的键,使键盘功能得到了进一步扩充, 成为当时业界的标准键盘。后来,为与微软的Win95操作系统相配合,IBM又推出了104键键盘,新增了3个功能键(亦称Windows快捷键或热键 ),使以前需要打开好几个窗口才能完成的某些功能,通过快捷键的设定直接启动菜单完成,而不必再点击鼠标,这样就使计算机的 操作更加便易。目前,这种104键的键盘因其又被业界所通常采纳而又被业界通称为标准键盘。,通信,PS/2设备履行一种双向同步串行协议。换句话说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。设备可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自设备的通信,只需把时钟线电平拉低即可。,在稍后的鼠标接口中讲解,什么是键盘的键位冲突?,简单的说,也就是当你同时按下键盘上的几个键的时候,这几个键不能同时反映出来,这就叫做键盘的键位冲突。例如说,你能想象当你按下CtrlAltDel时,系统只能接收到前两个键,而死活不承认你按了Del键吗?当然,现实中是不会有这样的键盘的,按不下CtrlAltDel的键盘根本就没法出厂,但其他一些常见的键位冲突就不稀奇了。例如,经常有一些键盘不能同时对例如A-S-空格这样的按键组合作出反应,这样在FPS游戏中,使用者就会大为吃亏。,根据上层薄膜和下层薄膜所经过的按键,就可以排出一个类似下面的表格:,在非编码键盘的接口控制电路中,就存储着这样一张表格,当按下某个按键,例如“Q”时,那么在这一点上,上下两个触点就会连通,反映到接口电路中,就会检 测到上层导线1与下层导线2被连通了。相对应在表中一查,就会知道,被按下的是字母“Q”,然后通过接口输出其ASCII码。,但在同时按下3个或3个以上按键时,情况就复杂了。在一种情况下,例如同时按下“Q”、“D”、“B”时,此时,从表中我们可以看出,上层导线1下层导线2、上层导线3下层导线3、上层导线5下层导线4都分别连通,此时系统完全可以正常识别出按下了这三个按键。但当按下“Q”、“D”、“E” ? 此时,我们可以发现,由于第三组连通的导线变成了上层导线3下层导线2,所以,此时反映到接口控制芯片的信号是:上层导线1下层导线2上层导线3下层导线3统统被连通到了一起。,但是,问题就在于,除了按下的第三个按键是“E”以外,如果按下的第三个键是用来连通上层导线1和下层导线3的“A”,也会有同样的信号组合?事实上, “Q”、“E”、“A”、“D”四个按键中按下任何三个都会有同样的信号组合,两行都有两个列输出,那么此时接口电路怎么判断呢?究竟是按下了哪三个按键或者是同时把四个按键 都按下了呢?这个时候,大多数键盘选择的方式,就是按照一个固定的规则输出固定的按键组合代码,对于其他可能的组合方式统统予以忽略,换句话说,在上面的键盘中,可能 无论你怎么按这四个按键,它可能永远只会输出“Q”“E”“D”的组合,尽管可能你按下的实际是“Q”“A”“D”(这里只是一个假设,实际上为 了避免误码,大多数键盘根本只输出两个按键而已)。于是,“键位冲突”就出现了。,由于非编码键盘的固有结构,“键位冲突”是不可避免的。于是就需要键盘的设计者绞尽脑汁修改键盘的线路排列和待查表格,尽量使可能会有的常用组合按键避开 冲突键位尽管要做到所有的按键都不发生冲突是不可能的,但你总不能让CtrlAltDel相互冲突吧?那这样的键盘还怎么用?还有如果四个方向键 相互冲突,那赛车类的游戏还怎么玩? 不过,由于市场上的游戏实在太多,每个游戏都可能会有自己常用的按键组合,甚至每个人都有自己的习惯按键,键盘的设计者当然不可能面面俱到,有经验的设计 师可能会考虑得多一些,至少对最常见的游戏和最常见的按键设置能够保证不出现问题,但要考虑到所有情况当然是不可能的。,鼠标输入原理,光电式鼠标例:HDNS2000组成的鼠标HDNS2000是安捷伦推出的高性能的光学感测芯片,它的内部包含三个基本模块:图像拾取系统、DSP处理器、PS/2或四状态输出转换器,如图1所示。,在HDNS2000芯片的底部有一个感光眼,如同一个小型的摄像头,不断地对物体表面进行拍照,接着将前后两次的图像送入DSP中进行处理,以判断物体移动的方向和大小,最后将数据转化为PS/2格式或者以两通道四状态格式输出。图2中的(a)与(b)分别为芯片前后两次拾取的图像。比较图2中的(a)和(b)可以看出,物体向左下方移动了一点。,HDNS2000的图像拾取系统每秒钟可以拾取1500张图像,可以精确地测量最高30.48 cm/s(12 英寸/s)的运动,解析度为400点每英寸。,PS2_C:PS/2接口的时钟端。MODE/XA:复用引脚,接高电平时表示选择PS/2模式;否则,为XA输出。RB/XB:复用引脚,PS/2模式时为鼠标右键输入;否则,为XA输出。MB/YB:复用引脚,PS/2模式时为鼠标中键输入;否则,为YB输出。LB/YA:复用引脚,PS/2模式为鼠标左键输入;否则,为YA输出。XY_LED:激光LED控制输出,在物体长时间不移动时,HDNS2000可以控制LED关闭,以节约能量。VDD3:3.3 V直流电源输入。REFB:内部参考引脚,通过电容与VDD3相连。PS2_D :PS/2接口的数据端。NRESET:低电平复位引脚。VDD5:5 V直流电源输入。GND:电源地。OSC2:晶振输出。OSC1:晶振输入,外接18.432 MHz晶振。,PS/2接口,一般,具有五脚连接器的键盘称之为键盘,而具有六脚连接器的键盘则称之为键盘。其实这两种连接器都只有四个脚有意义。它们分别是(时钟脚)、数据脚、(电源脚)和(电源地)。在键盘与机的物理连接上只要保证这四根线一一对应就可以了。键盘靠的端口提供电源,两个脚(时钟脚)和数据脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。,通讯协议,通讯协议是一种双向同步串行通讯协议。通讯的两端通过(时钟脚)同步,并通过(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把(时钟脚)拉到低电平。如果是机和键盘间的通讯,则机必须做主机,也就是说,机可以抑制键盘发送数据,而键盘则不会抑制机发送数据。一般两设备间传输数据的最大时钟频率是,大多数设备工作在。推荐值在左右,也就是说,(时钟脚)高、低电平的持续时间都为。每一数据帧包含个位,具体含义如表所列。,表1 数据帧格式说明,表中,如果数据位中的个数为偶数,校验位就为;如果数据位中的个数为奇数,校验位就为;总之,数据位中的个数加上校验位中的个数总为奇数,因此总进行奇校验。,从向机发送一个字节可按照下面的步骤进行:,()检测时钟线电平,如果时钟线为低,则延时;()检测判断时钟信号是否为高,为高,则向下执行,为低,则转到();()检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时机在向设备发送数据,所以设备要转移到接收程序处接收数据);()延时(如果此时正在发送起始位,则应延时);()输出起始位()到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保机没有抑制设备,如果有则中止发送;()输出个数据位到数据线上;()输出校验位;()输出停止位();()延时(如果在发送停止位时释放时钟信号则应延时);,主机必须按下面的步骤发送数据到PS/2 设备,1) 把时钟线拉低至少100 微秒2) 把数据线拉低3) 释放数据线4) 等待设备把时钟线拉低5) 设置/复位数据线发送第一个数据位6) 等待设备把时钟拉高7) 等待设备把时钟拉低8) 重复 5-7 步 发送剩下的7 个数据位和校验位9) 释放数据线10) 等待设备把数据线拉低11) 等待设备把时钟线拉低12) 等待设备释放数据线和时钟线,几种通信模式:reset、stream、remote等,Remote Mode:在这个模式下鼠标以当前的采样速率读取输入并更新它的计数器和标志但是它只在主机请求数据的时候才报告给主机位移和按键状态主机通过读数据0 xEB 命令来获得数据在收到命令后鼠标发送位移数据包并复位它的位移计数器,本章小结,键盘是计算机与操作人员进行信息交换的一种常用输入设备。 键盘接口电路可分为非编码键盘和编码键盘两种类型。非编码键盘仅提供按键的通或断状态, 按键代码的产生与识别是由软件完成的,当按键数量少时,一般采用独立式键盘结构;当按键数量较多时,常采用矩阵式键盘结构。而编码键盘是采用硬件编码电路来实现键的编码,每按下一个键,键盘电路便能自动产生按键代码,编码键盘主要有BCD码键盘、ASCII码键盘等类型。,本章小结,非编码键盘的硬件电路简单,成本低,但占用CPU的时间较长。编码键盘与之相反,硬件电路复杂、成本高,但使用方便,键盘码产生速度快,占用CPU时间少。对按键抖动干扰的消除,非编码键盘一般是靠软件而编码键盘一般是靠硬件电路来实现。 在一般的小型单片机测控系统中主要使用非编码键盘。,思考题,1简述键盘的两种类型及其特点。2简述何为键盘的抖动干扰及其消除的两种方法。3对比分析说明图5-3与图5-5两种键盘接口电路的异同。4结合图5-6,分析说明矩阵式键盘电路的逐行零扫描法的工作过程。5分析说明图5-8二进制编码键盘接口电路的工作原理。6结合图5-8与图5-9,分析说明硬件电路消除抖动干扰的过程。,

    注意事项

    本文(第五章键盘及其接口技术ppt课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开