吴鉴鹰(四)基于单片机的微机键盘的运用

有的时候我们总是抱怨键盘太少,做起来太麻烦了,所以就有人就比较聪明,直接运用电脑的键盘,也就是人们常说的“微机键盘”。下面吴鉴鹰就针对这个微机键盘的给大家做简单的介绍,已解决大家的键盘太少之忧,让大家做人机界面更加畅通无阻。

 

图 1

本文通过分析微机键盘的工作原理及数据格式, 从单片机应用系统的实际需出发, 对微机键盘与单片机的接口及软件进行了设计。用中断方式实现了微机键盘与单片机之间的通信。 

大家知道微机键盘是微机系统必不可少的外设其品种很多既有最经常使用的101102 等键盘又有各种适用于金融、证券等领域的小键盘。实际上单片机应用系统中也可用微机键盘作为人机交互工具。然而由于微机键盘的数据格式较多要开发它的完整功能编程量大。因此,在实际使用中往往要求厂家做成适合于单片机应用接口要求的特殊键盘R S 2 32 串口格式这对应用是很不方便的。

本文通过开发实践体会到: 微机键盘应用于单片机系统时, 只要满足实际要求, 硬件电路和软件设计完全可以简化, 并在这方面作了许多工作。

键盘功能及数据格式

键盘通过五芯插头与主机系统相连。一条数据线、一条时钟线均是双向的

(既可向系统发键盘数据又可接收系统发来的键盘命令), 一条是复位线另两条分别是+ SV 电源线和地线。五芯插头的布局如图所示。

 

图 2 

微机键盘尽管形式各异但一般都符合两种标准川一种是Pc / XT 标准另一种是AT标准。前者数据位为(较老式), 后者数据是较常用的一种标准目前许多微机键盘都兼容这一标准。下面对后者作一简要介绍:                           

1.1 键盘功能

键盘通过数据线和时钟线与系统通信它接收系统发来的键盘命令码送出键盘数据。

在接通电源后键盘首先进行复位等初始化工作然后进行键盘扫描作好接收命令和发送键盘数据的准备工作。

键盘和系统相互间的数据通信均采用位格式的串行方式第一位起始位位是位数据位(低位在前高位在后), 10 位是奇偶校验位位是停止位数据的起始位为低电平。系统接收的键盘数据和键盘接收的键盘命令均在移位时钟的下降沿同步输人时钟周期为50 u s 。其时序如图所示。

微机键盘与系统通信帧格式时序

图 3  

1.2 键盘命令

键盘命令是由系统发送给键盘的命令码。键盘在接收到这些命令时20 ms 内予以响应即送回一个响应(FA ll)

键盘命令的含义如下:

(l) FFH 复位键盘一一使键盘进行复位和内部自测试操作;

(2FE H 重新发送一检测到键盘数据错误时要求键盘重新输出原来的内容;

(3) F6 H 设置键盘缺省值一一使键盘复位到初始状态并停止键盘扫描;

(4) FS H 设置缺省值并停止键盘一一使键盘复位到初始状态并停止键盘扫描;

(5) F4 H 启动键盘一一清除键盘输出缓冲器并启动键盘扫描和输出数据;

(6) F3 H 设置拍发速率延时参数;

(7) E E H 回响命令一一要求键盘接收到此命令时也回送E E H 予以响应;

(8) E l置位复位LE D 指示器。

1.3 键盘数据

键盘数据包括键盘扫描码和命令响应码。键盘扫描码是用户按下键盘按键时键盘发送给系统的数据不同的键其码值是不同的。可通过查阅有关资料〔‘〕或测试获得。命令响应码则是键盘对系统命令的响应。其含义如下:

(1) FE H 请求重发一一对收到一个奇偶校验错或无效命令时请求系统重发命令;

(2) FA H 正常应答一一对任何一个有效的键盘命令均以该响应作答;

(3 ) OOH 超限应答一一当用户按键速度超出键盘内缓冲器存放的16 个扫描码时出该应答;

(4 ) FD H 诊断故障应答一一键盘在自测试过程中若有故障则以FD H 应答;

(5) A A I硕诊断正常应答一一键盘在自测试过程中若无故障则以A A H 应答;

(6) E E H 回响命令应答一一键盘收到系统的回响命令(E E H ) 也发一个E E H ;

(7 ) FO H 断开扫描码前缀字节一一断开扫描码占两个字节, 第一个字节总是刊H , 第二个字节和接通扫描码相同。 

2、接口及软件设计

微机键盘与单片机的接口如图

所示。

 

图 4

在此对单片机无特殊要求, 可采用

A T M[E L 公司的AI9 C5 1 单片机其指令系统和IN JE L 公司的MCS -51 系列单片机完全兼容。单片机Pl.7 连数据线1)A T,P3.2 (IN ,I0 )连时钟C LK。微机键盘与单片机只有建立正常的通信关系才能控制键盘及处理键盘数据。因此在软件设计上本文着重于介绍键盘数据的接收、键盘命令的发送、键盘的自检和复位这三部分。在软件设计时键盘命令只需使用一个,即初始化键(F FH )。对键盘数据的接收不作奇偶校验以简化编程。

2.1 键盘数据的接收

键盘数据的接收用IN TO 外部中断方法来实现在时钟线C LK 为低电平时产生一次中断读取数据线D A I,一位数据。键盘通过时钟线C L K 产生个时钟脉冲使单片机产生次中断才接收完一帧信息。中断次数的识别由单元E IC 来完成,E IC 的初值为1 1, 每中断一次减1。当E IC 表明一帧信息接收完同时禁止外部中断(E XO = O)、禁止键盘发数据(C LK = 0 )、置数据接收完成标志bR ()K = 1 并使E IC 的初值为1 1 

键盘数据存放单元在K B D 其初值为# o fh, 每中断一次数据线1)A T K B D 左移一位数据同时K B D 也左移出一位当检测到K左移出起始位“ ” 时, K B D 中的内容即为要接收的键盘数据。当主程序处理完键盘数据K BD 为了接收下一帧信息应置C LK= 1,EXO = 1 bR O K = 0

2.2.2 键盘命令的发送

键盘命令的发送采用刊中断方法来实现每次中断都对时钟线C LK 求反以产生n个脉冲把发送缓冲区SB LS13H 中的信息经数据线1A T 送给键盘。

中断次数由单元T IC来控制, T IC 的初值为2, 每中断一次减1。当T IC 一帧位信息发送完D A T= 1CL K = 1、命令发送完成标志b R ()K = 1, T IC 的初值为2, 并禁止定时器工作(T R O= 0 ), 为发送键盘命令或接收键盘数据作好准备。

SB HSB L 组成的发送缓冲区用于存放要发送的一帧位信息。其中S 13H 为高字,SB L 为低字节一帧信息在该缓冲区中的存放格式如图所示。

图 5 

其中: d0 位为一帧信息的起始位;

,d7 d l 为键盘命令(田为最高位,d1 为最低位) ;D l 为奇偶校验位;砚为停止位;其余未定义。如单片机时钟频率为12 M llz , 定时器工作方式1, 要确保键盘对时钟周期为5 0 u s 的要求则时间常数取值为TL0 = # ocdh,THO = # offh

源代码见:http://www.eeskill.com/file/id/19357

永不止步步 发表于01-26 10:43 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号