51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > 51单片机 > 详细内容
单片机系统与标准PC键盘的接口模块设计
发布时间:2009/6/29  阅读次数:1667  字体大小: 【】 【】【

作者:刘元盛 李哲英 李维     摘自:《电子设计应用》

概述
 
       在单片机系统中,当输入按键较多时,在硬件设计和软件编程之间总存在着矛盾。对于不同的单片机系统需要进行专用的键盘硬件设计和编程调试,通用性差,使项目开发复杂化。标准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信号同步下发送其他位。

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号