05键盘及其接口-计算机技术及工程应用介绍.pptVIP

05键盘及其接口-计算机技术及工程应用介绍.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 键盘及其接口技术;本章主要内容;引言;引言;5.1 键盘输入电路; 5.1.1 键盘的抖动干扰;; 5.1.2 抖动干扰的消除; 这段充电延迟时间取决于R1、R2和C值的大小,电路设计时只要使之大于或等于100ms即可避开按键抖动的影响。同理,按键S断开时,即使出现抖动,由于C的放电延迟过程,也会消除按键抖动的影响 图中,V1是未施加滤波电路含有前沿抖动、后沿抖动的波形,V2是施加滤波电路后消除抖动的波形。 2.软件方法 软件方法是指编制一段时间大于100ms的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。 ;图5-2 滤波延时消抖电路 ; 5.2 非编码独立式键盘;5. 2.1 查询法接口电路;图5-3 独立式键盘结构原理 ? ;图5-4独立式键盘查询法程序流程图 ; 5.2.2中断法接口电路; 工作过程如下:当CPU对8255A初始化(8255A的A口工作于方式1 输入)后,CPU即执行主程序。当按下S0键即表示要进入自动控制状态,此时与之相连的I/O口线呈现为低电平的同时,与非门输出为高电平,经反相器变为低电平,使8255A端口A的选通输入信号PC4 有效,则PA0~PA2引脚接收并存入3个按键的“0”或“1”状态,当恢复成高电平后,经TSIT时间,8255A的PC3发出INTRa中断请求信号,经中断控制器8259A向CPU申请中断,CPU响应中断后,即转到中断服务程序中。中断服务程序依次查询按键的通断状态,当查询到是自动/手动(即S0=0)时,则转到自动/手动控制子程序的入口地址,从而使系统进入自动控制状态。如果没有键按下,则相应的I/O口线均为高电平,也不会产生中断信号,CPU继续运行主程序。 ;图5-5独立式键盘中断法接口电路 ; 键盘中断服务子程序,与查询方式相似,在保护现场后,首先调用100mS延时子程序去除抖动,然后依次查键号,并转入键功能处理程序,最后恢复现场、中断返回。显然,查询顺序代表了按键的排队优先级。 采用中断法时,CPU对按键而言是被动方式,在无键按下时不占用CPU时间,因而CPU有更多的时间执行其他程序。 上述分析说明:独立式键盘接口电路简单灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,需要占用较多的I/O口线。比如64个按键,需要有64根线,不仅连线复杂,查询按键的时间也较长。故这种键盘电路只适合于按键数量比较少的小型控制系统或智能控制仪表中。 ; 5.3 非编码矩阵式键盘;5.3.1 矩阵式键盘的结构组成;图5-6 矩阵式键盘接口电路 ; 当键盘中无任何键按下时,所有的行线和列线被断开且相互独立,输入线Y0~Y7列都为高电平;当有任意一键按下时,则该键所在的行线与列线接通,因此,该列线的电平取决于该键所在的行线。基于此,产生了“行扫描法”与“线反转法”两种识别方法。 行扫描法又称逐行零扫描查询法,即逐行输出行扫描信号“0”,使各行依次为低电平,然后分别读入列数据,检查此(低电平)行中是否有键按下。如果读得某列线为低电平,则表示此(低电平)行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,然后转入该键的功能子程序入口地址;如果没有任何一根列线为低电平,则说明此(低电平)行没有键按下。接着进行下一行的“0”行扫描与列读入,直到8行全部查完为止,若无键按下则返回。 有时为了快速判断键盘中是否有键按下,也可先将全部行线同时置为低电平,然后检测列线的电平状态,若所有列线均为高电平,则说明键盘中无键按下,立即返回;若要有一列的电平为低,则表示键盘中有键被控下,然后再如上那样进行逐行扫描。 ;5.3.2 矩阵式键盘的程序设计; 为消除按键的抖动干扰,程序中需调用延时100ms的子程序, 以便认定确有键按下再识别其键值。 求十进制键值的方法是分别设一个行值寄存器CL和列值寄存器DL。接口电路中跨接在行列线上的64个键,由于同一列相邻行之间相隔数8,所以每进行一次“0”行扫描后,如果此行无键按下,则行寄存器CL应加08再进行下一行的“0”行扫描;若有键按下则不加08而转求列值,由于列值比键值小1,如第一行第一列的键按下时列值Y0(即数据位D0)=0比01键值小1,所以列值寄存器DL应先加1,然后将读入的列值循环右移,判断进位位CF是否等零即有否键按下,若无键按下,再继续加1、右移、判断,重复上述过程直到有键按下。最后把行值

文档评论(0)

a336661148 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档