第8章 键盘接口技术 - 兰州大学信息学院34.pptVIP

第8章 键盘接口技术 - 兰州大学信息学院34.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 键盘接口技术 - 兰州大学信息学院34

第8章 键盘接口技术 8. 1 键盘的工作原理 个人计算机普遍使用三种标准建盘: (1)早期的PC、XT和AT机用的83与84键键盘。 (2)后来推出了101键的扩展键盘。 (3)当前又推出Windows键盘 每个键盘的动作包括两部分:一是按下,二是弹起。 1. 每个动作产生一个扫描编码,为区分两种不同的动作,当按下时转换为接通码,也叫扫描码;由一个字节组成。当弹回时产生断开码,也是一个字节,通常固定为F0h。这样,每个动作由两字节组成。 在早期的PC机和XT机中,接通码和断开码只有一个字节。通常用高位bit#7表示按下和弹起时的 状态,在按下时,bit#7=0;在弹起时,bit#7 =1。例如:键B的7位扫描码是48,其二进制码为110000,按下时,被送到系统控制端口A的码当弹起时,这个码变 2. 当扫描码存放在端口A后,键盘中断IRQ#9被激活,这时,处理器立刻停止工作,并执行与中断有关的例行程序。如果扫描码的产生来自换挡键或切换键,存储器中记下转换的状态。除此以外的多数是扫描码转换为字符码并显示。 在换挡和切换开关状态,通常的字符是“a”或“A”,这个码放在键盘缓冲器中,程序随时可以取出。 3. 特殊情况:如PrtSc键,键盘中断程序直接由 中断向量指向例行程序激活,不把代码存放在缓冲区中,程序随时可以取出。 4. 键盘中断程序调用:对多数计算机键盘中断程序调用BIOS中断号15h的功能4Fh,把键盘的扫描码送入AL。不做任何处理,并返回相同的码。 5. 早期在1982年8月11日以前的XT机中,没有功能4Fh。键盘中断程序能将两类码---ASCII和扩展码插入键盘缓冲区。 6. 从键盘到屏幕的过程: 计算机内部的BIOS提供了从键盘缓冲区取码的例行程序。在DOS中也为此提供例程。 BIOS例程有两个版本,分别为83键键盘和101 键盘。并没有84键盘,因为84键盘只增加了一个Sys Req 键,它不把代码存入键盘缓冲器中。在使用101键盘时,对扩充的有软件确认使用的键盘类型,具有支持扩充键盘功能的BIOS计算机,在使用101键盘时,也提供83键盘功能,在这种情况下,83键盘功能滤掉附加码,这些码通常由101键盘放在键盘缓冲区中。 这样,只使用83键盘软件,不必做不同键盘的适应性修改,即可。 8.2 击键截取和击键译码 8.2.1 清除键盘缓冲区 有时用户的按键响应可能导致数据丢失或破坏了数据而不能挽回。在这种情况下,消除缓冲区可以消除不恰当或意外的击键,这种击键或许在缓冲区中正等待处理,或许可能发出错误的响应。在其他情况下,清理缓冲区不是好办法,因为这样做会损害超前键入的特性。并不能再使用键盘宏指令。缓冲区可存放15个键入码,为每个键入码在存储器中提供两个字节。包括转换码、单字节的ASCII码和双字节的扩展码。 对单字节码,第一字节放ASCII码,第二字节 放扫描码;对扩展码,第一字节存放ASCII 0, 第二字节通常放扩展码的扫描码。但并不是绝对的因为功能键与换挡键组合后可产生一个扩展码。 键盘缓冲区设计成一个环行队列,称为先进先出的(FIFO)算法缓冲区。实际是两个指针跟踪计数器记录着当前在缓冲器中代码串的“头”和“尾”。 键盘缓冲区设在BIOS数据区,BIOS数据区的开始地址:0040:2000。 32字节缓冲区:0040:001E开始 头指针:0040:001A 尾指针:0040:001C 中断21h功能6的子功能FFh返回键入码,如果不存在有效代码将不等待。没有键入 码时,设0标志。不断调用中断直到没有键入码返回为止。 P223例8-1 清理键盘缓冲区 KEY-FOUND: MOV AH , 6h MOV DL , 0FFh INT 21h JNZ KEY-FOUND 8.2.2 检测键盘缓冲区中的键入码 不用从键盘缓冲区移出字符,就能检测是否已有键在输入。因为键盘缓冲区使用两个指针一直跟踪记录当前在缓冲区中连续字符串的头和尾。当两个指针相等时,说明缓冲区是空的。 键盘缓冲区有一个或多个字符返回时,INT 21h的功能Bh把FFh送入AL寄存器,缓冲区空时返回0。 P224 例8-3和例8-4所示 8.2.3 在键盘缓冲区中键入码 对于101键扩展键盘,BIOS含有一个例程,用于将代码插入键盘缓冲中,这种代码与由键盘中断插入的代码相配——即可以作为键入码用。 中断16h的功能

文档评论(0)

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

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

1亿VIP精品文档

相关文档