《单片机系统与标准PC键盘的接口PS2模块设计》.pdf

《单片机系统与标准PC键盘的接口PS2模块设计》.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机系统与标准PC键盘的接口模块设计 单片机系统与标准PC键盘的接口模块设计 摘 要: 本文介绍了一种单片机系统与标准PC键盘接口模块,并详细介绍了该模块的工作原理 与软件编程思想。 关键词: 单片机系统;PC键盘;接口模块;输入;FIFO 概述 在单片机系统中,当输入按键较多时,在硬件设计和软件编程之间总存在着矛盾。对于不同的单 片机系统需要进行专用的键盘硬件设计和编程调试,通用性差,使项目开发复杂化。标准PC键盘在 工艺与技术上都已相当成熟,而且工作稳定,价格低廉。本设计实现了一个接口模块,它将标准PC 键盘发出的位置扫描码,变换为标准的ASCII码和OEM扫描码或Windows虚拟键代码,再以并行或串 行方式传送给上位单片机。 接口模块的特点 该模块在PC键盘与上位单片机之间起转换作用,它屏蔽了与PC键盘进行数据和命令交互的复杂 过程,大大简化了上位单片机系统的输入设计;它实现了类似DOS操作系统中键盘中断服务程序的功 能,使设计人员只需关心接收按键的结果,并可使用标准的键盘编码进行编程;它要求上位单片机通 过8位并行接口与其相接,对于不能提供并行接口的系统,可使用SPI兼容的同步串行接口与其相接, 特别是对于那些希望占用单片机的系统资源少而需要扩展的键数较多、仪器整体需要美观大方的应用 场合,其性能价格比更具优势。该模块与单片机系统的连接关系如图1所示,在图中也给出与上位单 片机相接的20脚接插件的信号定义。 计算机中标准PC机键盘的工作原理 图1 该模块与上位单片机系统的连接关系及信号定义 图2 键盘接口时序(a) 键盘发送时序;(b) 键盘接收时序 图3 单片机系统与标准PC键盘接口模块原理框图 键盘与主机通过键盘插头相接,键盘插头有5芯大插头和6芯小插头(PS/2接口)两种。接口信 号有:电源、地、键盘时钟KB_CLK、键盘数据KB_DAT。正常工作时,键盘电路不断地扫描键盘矩阵。 若有键按下,则以串行方式发送按键的位置扫描码给主板键盘接口电路。按下键时,发送接通扫描码, 松开键时,发送该键的断开扫描码。断开扫描码一般是在接通扫描码前加一个断开标志字节F0H。若 某键一直按下,则以按键重复率连续发送该键的接通扫描码。扫描码与按键的位置有关,与该键的 ASCII码并无对应关系。表1第二列给出经实际测试得到的若干按键的位置扫描码。由表1可见,根 据键的按下或释放及所按键的不同,这个序列可以是1、2、3、4、6、或8字节,可称之为位置扫描 码序列。 标准键盘与主机的通信是双向的,并采用11位的串行异步通信格式,这11位数据包括:起始位 0、8位数据位(LSB在先)、奇校验位P、停止位1。图2(a)给出了键盘发送时序。数据(KB_DAT)在时 钟(KB_CLK)的上升沿改变,下降沿时有效,可被主机读取。图2(b)给出键盘接收时序。主机发送前, 先将KB_CLK拉低,以抑制键盘发送,再将KB_DAT拉低发送起始位,然后释放KB_CLK线,键盘接管 KB_CLK并产生时钟信号,主机在KB_CLK信号同步下发送其他位。 标准PC键盘接口模块的工作原理 基本工作原理概述 该模块的原理框图如图3所示。PC键盘与该模块通过专用插座相连,数据KB_DAT接到AT89C2051 的P3.0引脚,时钟KB_CLK接到引脚。在PC键盘有键按下时,KB_CLK信号会引起AT89C2051的连续 中断,通过定时器T0与外中断的协同工作,可将PC键盘发出的位置扫描码序列接收至缓冲区中。然 后,在主程序中将位置扫描码解码、查表换算,再编码成一字节的WINDOWS虚拟键代码或两字节的OEM 扫描码与ASCII码,并存入系统中FIFO栈。在上位单片机可以接收新键值时,将FIFO栈中编码数据 以并行或串行方式传送给上位单片机。 为了能更清楚地指示系统当前的工作状态,在硬件上加装了电源、正在解码、FIFO栈溢出、码 值准备好等指示灯。 中断解码的工作原理 由于键盘的按键输入是随机的,为了能实时地响应,在程序中使用定时器T0中断和中断协同工 作,将位置扫描码序列恢复至键盘接收缓冲区中。中断服务程序用来将码值的一位移入缓冲区中,T0 溢出的中断服务程序主要用来判断一次按键所发出的码是否已全部接收。系统设置T0的定时间隔为 5ms,并在系统启动后就开始定时。由于在正常接收每个按键的码值序列过程中,键盘发送的每位数 据间隔不会大于5ms,因此在每次中断服务中,首

文档评论(0)

ghfa + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档