网站大量收购独家精品文档,联系QQ:2885784924

PC机键盘接口深入分析与应用设计.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
PC机键盘接口深入分析与应用设计.doc

摘要 进一步分析PC机键盘工作原理和工程应用中需注意的几个问题;介绍用89C2051和矩阵式键盘产生标准PC机键盘信号的方法,以及如何将标准PC机键盘应用于单片机系统。 ? 前言   嵌入式计算机在工程上越来越普遍得到应用,而标准的PC机键盘则因不适应工业环境受到了限制,我们希望有定义灵活、工作可靠的键盘,产生了设计自己专用的键盘和键盘接口的想法。在本刊2001年第3期《101/102键盘信号分析与键盘接口的设计实现》一文中,石京民先生已经介绍了PC机键盘的基本工作原理(以下简称《石文》),在此我们仅进一步介绍PC机键盘通信中的几个具体问题和自己在工程上的实际应用,供大家参考。 表1 一、? 键盘扫描码和系统扫描码   PC机键盘大致有XT、AT和PS2三类,计算机通过两类中断程序与键盘联系:一类是硬件中断INT09H,由按键产生,把键盘代码(扫描码)转换成相应的ASCII码存入键盘缓冲区;另一类是软件中断INT16H,从键盘缓冲区获得ASCII码或扩展码。早期PC、XT机采用83键标准键盘,每个键分配的键号和扫描码是唯一的,由INT09H把扫描码转换成ASCII码。AT及PS2等84/101/102/104键扩展键盘,键号的分配及发送的键盘扫描码与标准键盘有较大差别。为了保持软件级的兼容性,机器通过键盘接口把不同的键盘扫描码转换成与PC兼容的扫描码,再交给中断程序处理。这样,前者键盘直接产生的扫描码称为键盘扫描码,出现在硬件最底层,程序人员一般不接触;后者称为系统扫描码,广泛应用于程序中,也包括在Windows系统下。在AT机中,用单片机Intel 8042作为键盘控制器,而在586及奔腾机中则集成到南北桥芯片。在PC及XT机中,键盘扫描码与系统扫描码是一致的;在AT以上机型,键盘扫描码不同于系统扫描码,但也有一定规则可循。表1是部分扩展键盘扫描码对照表。   实际应用中的扫描码格式(包括按键和释放扫描码)与《石文》所述基本一致,只是在扩展键盘中有些键的扫描码是2字节甚至更多,例如:   右WINDOWS键:E0H;27H;E0H;F0H;27H   右ALT 键:E0H;11H;E0H;F0H;11H   右CTL键:E0H;14H;E0H;F0H;14H   PAUSE BREAK:E1H;14H;77H;E1H;F0H;14H;F0H;77H   根据笔者对多种键盘的实践,非PC机键盘扫描码也类似,但数值可能有所不同;有些原装机器的扫描码也可能会所不同。读者可以根据图2的电路去验证每个键盘对应按键的扫描码。 二、? PC机与键盘的串行通信   时序是设计电路和编程的基本依据,但很少有资料介绍键盘工作的具体时序,我们对AT、PS2扩展键盘进行了分析。确切地说,键盘与PC机的通信是串行异步与同步相结合的方式。键盘发送到PC机的数据采用标准的串行异步通信方式(对应于8051的串行通信方式2、3)[2],即1位起始位,8位数据位(低位在前),1位奇校验位,1位停止位。由于按键速度的不一致,并为了提高设备的兼容性,又在异步通信的基础上增加了同步时钟,在时钟的上升沿对数据进行采样。也就是说数据的时钟同步和恢复由发送端控制,不需要接收端再建立同步。这样增加了一根时钟线,却简化了控制和编程。反之,PC机发往键盘的命令和数据也如此。   键盘控制器可实现下列功能:接收、校验和转换来自键盘的按键扫描码数据;控制和检测传送数据的时间;向键盘发送命令并接收键盘的响应;向系统发键盘中断,请求主机进行键盘代码处理;控制系统复位。   PC机产生键盘硬中断后,在没有处理完数据之前,会把时钟线置低,禁止键盘输出。具体的键盘命令和响应,如设定拍发速率、自检等,可参考有关资料[1]。 三、? 设计自己的键盘和键盘接口   有了上面的基础,就可以设计自己用的键盘。我们研制的一套便携式综合测试系统中采用了PC104总线嵌入式Intel 486(以下简称PC104),以只有20脚的89C2051单片机仿真PC机键盘,收到了很好的效果,如图1所示。其中键盘电路所需的+5V电源由PC机的键盘接口提供,89C2051的14根I/O线分别负责串行通信和6×6矩阵键盘扫描。由于PC机上电后要对键盘和键盘控制器进行自检,所以在程序中要充分考虑到这一问题,否则会每次启动后报告键盘错误;PC104属于嵌入式PC,其BIOS设计成可以脱离键盘工作,那么就可简单地设计成复位后数据和时钟线都为高电平即可;对于即插即用的PS2键盘也不需要自检。这样就可以把仪器面板上的薄膜键盘应用到PC机系统里了。 图1? 89C2051仿真PC机键盘   反过来,在某些单片机或单板机应用场合需要使用汉字,传统的办法是事先把要用的汉字的内码编好,再固化起来,调用对应的显示字库,修改起来很不方便。如

文档评论(0)

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

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

1亿VIP精品文档

相关文档