DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1149|回复: 0
打印 上一主题 下一主题

[待整理] 基于AT89C51的操控键盘的设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-13 12:28:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
引 言

在一些自动化测量或智能设备中,微机作为控制中枢,对多个功能单元进行控制与管理,以实现仪器设备的系统功能。键盘是人机通信的基本设备,操作者通过它完成对设备的操控。PC机通用键盘是与主机分开的独立设备,其结构外形已经固定,需要较大的安装空间。但在所研制的产品设备中,系统上电运行后,往往只需通用键盘中的少量按键即可完成人机通信或控制,如数字键O~9、→、←、↑、↓、Esc等按键。在这种情况下,因为结构尺寸的限制,并为了使操控方便、设备简化等,不便采用通用键盘,而需使通用键盘小型化,并且与产品设备融为一体。因此需要研制小型一体化专用键盘。

采用小型一体化专用键盘不但可完成按键的功能,而且要求根据仪器外形进行一体化优化设计,使产品外型美观、布局合理。小型一体化专用键盘不仅适用于一般的仪器控制系统,而且可以用于军工加固计算机系统中。军工产品中的微机多为加固PC类计算机,其采用PC机通用键盘。本文以PC机通用键盘为例,阐述研制小型一体化专用键盘的方法。

1 设计原理

PC机通用键盘通过“PS/2”5芯电缆与主机相连。该5芯电缆是键盘与主机之间信息与数据传输的路径,定义如下:1端,RESET;2端,+5 V;3端,CLOCK;4端,地;5端,按键波形。其中1、2、4端的信号由主机内部确定;3端为时钟信号CLOCK;5端为按键波形,此波形随按下按键的不同而变化。

采用本文介绍的单片机控制系统和软件编程的方法,可以准确模拟按键波形,使小型专用键盘的按键波形与PC机通用键盘对应按键波形一致。具体方法如下:首先用示波器测出PC机通用键盘各按键按下时的波形,并保存起来;然后用单片机控制系统和软件编程模拟出各按键的CLOCK波形和按键波形,并确保各按键的CLOCK波形和按键波形时序匹配、形状逼真,再将按键信息通过5芯电缆传输给主机。所选按键可根据需要安装在产品的面板上等易于操作的地方。当操作者按下某键时,单片机控制系统产生相应的CLOCK波形与按键波形送给主机,实现按键功能。这样就完成了小型专用键盘的设计。

2 硬件电路及软件

2.1 单片机控制电路

采用单片机系统实现小型专用键盘的硬件电路,如图1所示,设计完成的小型专用键盘的按键有18枚,排成6行×3列的矩阵。单片机可根据需要安装在主机内部的接口板上,按键则安装在产品的面板等易操作的地方。当按下某按键时,单片机控制系统将产生的CLOCK信号与按键信号通过“PS/2”5芯电缆传送给主机。此硬件电路简单,可充分利用软件编程来模拟按键波形,实现键盘功能。系统要判断某一按键是否按下,可以利用软件逐一查询6行×3列矩阵中的按键,然后输出相应的按键模拟波形,从而实现按键功能。


2.2 举 例

下面以按键“8”为例,说明如何从PC机通用键盘中“取出”所需按键,并保持各按键功能,形成小型专用键盘。首先用示波器测出在PC机通用键盘上按下“8”键时,5芯键盘通信电缆的3端和5端的波形。按键“8”的波形测量波形如图2所示。


示波器通道1指示信号电缆3端的CLOCK波形,通道2为电缆5端的按键“8”的波形。用单片机软件编程模拟图2所示波形。按照图1所示硬件电路,编程使单片机89C51的P2.4端产生CLOCK波形,P2.6端产生按键波形;P2.4端与5芯键盘电缆的3端相连,P2.6端与电缆的5端相连。当操作者按下产品面板上的“8”键时,程序执行模拟“8”键波形的子程序,并将模拟出的波形传送给主机,这样就完成了按键“8”的设计。用同样的方法,可以设计出小型专用键盘上其他按键。

3 设计中要注意的问题

3.1 准确地模拟按键波形

每一枚按键的波形包括电缆3端的CLOCK波形与电缆5端的按键波形。各按键的CLOCK波形相同,如图2所示通道1的波形,由10个脉宽为40μs且间隔也为40μs的脉冲和1个脉宽为500 μs的脉冲形成CLOCK波形;而5端的按键波形则因按键的不同而各异。要准确地模拟按键波形并使之时序匹配,即准确地计算出脉冲的宽度,必须精确地计算出时间常数,做好延时程序。如果单片机控制电路采用12 MHz晶振,则一个机器周期为1μs,时间常数X的计算公式为:

(循环体字节数)×机器周期×时间常数X=延时时间

在上式中,循环体字节数、机器周期、延时时间都已知,则时间常数x易求得。例如,延时1 ms程序如下:


利用上面公式可得到:(1+1+2)×1×X一1 000 μs则X=250μs,将其带入上面的程序段中,执行该段程序,能实现1 ms精确延时。准确地计算出时问常数,精确地实现延时,就能确保模拟波形的准确性。3.2按键的抖动问题

凡有按键操作的系统,在设计中一般都要考虑按键的去抖。由于按键的机械触点有弹性作用,在闭合及断开瞬间均有抖动过程,抖动的时间长短与开关的机械特性有关,一般为5~lO ms。为了保证按键的1次闭合仅作1次按键输入处理,就必须消除按键抖动对系统的影响。

采用软件编程消除按键抖动影响的方法是:当检测到某一按键按下时,执行相应模拟按键波形的子程序后,应再判断该键是否弹起,若没有弹起则等待,直至按键弹起;按键弹起后,延时20 ms再继续执行后面的程序,以消除按键抖动现象。

3.3 同行多个按键同时有效的问题

当有按键操作,按下某一键时,可能出现该键同一行线上的其他多个按键同时有效的现象。采用屏蔽非当前列线的方法可解决这一问题:当检测有无键按下时,须对列线和行线依次扫描,当扫描至某一列线时,该列线置“O”,同时其他列线置“1”,这样就屏蔽了非当前列线,从而准确地判断出某键是否按下。

3.4 按键波形被吃掉的问题

有些按键的波形只有1段,如图2所示“8”键的波形;而有些按键的波形有2段或2段以上,如图3所示“十”上移键的波形。2段波形间隔1.6 μs,用单片机仿真按键波形时,可看到第1段波形形成后,其后3 ms的时间内时钟CLOCK保持低电平,导致按键第2段波形被吃掉。为了解决这一问题,在模拟具有2段以上波形的按键时,在2段波形之间应加入3 ms的延时,使按键的第2段波形脱离时钟CLOCK的低电平区。这样按键的第2段波形就不会被吃掉,从而保证了按键波形的完整,实现按键功能。


结 语

采用本文介绍的设计方法制作的小型一体化加固机专用键盘,已应用到产品中,其功能稳定可靠,取得了良好效果。实际工作中,可根据产品的结构特点和需要,应用该设计方法研制小型一体化专用键盘,具有推广意义。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-17 01:18 , 耗时 0.094494 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表