老古开发网首页
导航:老古开发网首页文章索引文章分类技术文章→[用AT89C2051设计的PC/AT键盘]
| -文章搜索 - 最新文章 - |

用AT89C2051设计的PC/AT键盘

发布时间:2006年3月4日 点击次数:1571
来源:单片机与嵌入式系统应用   作者:海军航空工程学院分院 杨日杰 张宗玉;空军87424部队 郑立新
 

摘要 在介绍PC/AT键码特征的基础上,介绍利用AT89C2051来实现PC/AT键盘的硬件和软件设计 方法。它具有结构简单、选择性强、便于实现等优点,特别适用于36个以下PC/AT键盘的 应用。

关键词 键盘 键码 微控制器

  在工业控制、测量仪器等领域,已大量使用嵌入式PC,如 ADVANTECH公司的PC/104、AMD公司的E86嵌入式PC等。它们除具有 PC的功能外,还提供了功能强大的各种标准接口,如:平板 /VGA显示器控制接口、光驱接口、以太网接口、RS-232/422/485 接口、PC/AT键盘接口等 。这就为新产品开发的标准化、模块化提供了方便,可大大缩小研发周期,降 低研制成本,快速进入市场。由于嵌入式PC具有标准PC/AT 键盘接口,也就是说,可以用标准的PC/AT键盘来对嵌入式 PC进行操作与控制。但是,在很多实际应用中,由于一般只用到某几个固定的键,并希望键盘 具有体积小巧、便于布放等特点,为此,希望能够设计一种小巧、灵活的 PC/AT键盘,来满足各种需求。本文介绍一种由AT89C2051设计实现的 PC/AT键盘。

1  PC/AT键盘的特点

  PC/AT键盘由单片微控制器、键盘矩阵和支持逻辑三部分组成。键盘微控制器的主要功能是扫描 键盘,以得到有效的闭合键,一旦键被按下或放开,就为系统板产生键代码,将键代码以串行格式 传递到系统板,同时产生将键代码转换为供系统板使用的并行数据所需的时钟信号。 AT键盘使用接通键码,其值在00~7F之间,以串行数据格式传递 到系统板;每发送一个键码包含11个数据位,即1个起始位、 8个数据位(低位在前,高位在后)、1个奇偶校验位、1个停止位。在键码传送的同时, 微控制器还传送1个键码时钟同步信号,用于同步键码数据的接收。键码中每个数据位的传送发生在 键盘时钟的下降沿,时钟的波特率为16 Kb/s。图1为接通键码是2C,即按下t键时,键码的传送格式。


图1  AT键码2C传送格式

  对于PC/AT键盘,如果按下键0.5 s之前放开该键,则键盘电路产生一个断开键码,将这个键码也 以串行数据的格式传送出去。AT键盘的断开键码为F0,在断开键码之后再跟接通键码。其中断开键 码通知BIOS键盘例程,按下的键序列功能已结束,键已被放开。如果在键按下 0.5 s之后仍未放开该键,则键盘电路产生一个接通键代码(与接通键码 相同),并以每秒6个键码的速率(每166.7 ms一个键码)进行传送,此过程直到键盘电路检测到断开代码为止。常用键的键码如表 1所列。

表1

2  硬件设计

  键盘电路如图2所示,由ATMEL公司的微控制器AT89C2051 、MAXIM 公司的看门狗自动复位电路MAX813L及键盘矩阵组成。由于AT 89C2051的可用端口为16个,除复位端RES、看门狗信号输出 端WDI、键码数据输出端TXD和时钟输出端CLK外,还剩12个可用端口,这样,其最大可独立响 应6×6=36个键的输入,可满足工控机常用控制键的要求。 MAX813L为看门狗电路,它实时接收来自AT89C2051的WDI信号,并自动判断两次 WDI信号的间隔时间。当时间间隔小于1.6 s时,其RST输出端保持低电平;当时间间隔大于1.6 s时,其RST输出端输出高电平,AT89C2051被复位。AT89C2051 具有如下特点:

  ◇ 具有2K字节可编程闪存;
  ◇ 128×8bit 内部RAM;
  ◇ 15根可编程I/O线;
  ◇ 2个16位定时/计数器;
  ◇ 6个中断源;
  ◇ 可编程串行UART。


图2  键盘硬件原理图

3  软件设计

  软件包括定时0中断子程序、定时1中断子程序、主程序等。其中,定时器0定时中断子程序用 于定时检测有无键被按下、判断哪个键被按下并确定对应的键码。定时器 1定时中断子程序用于确定输出键码和时钟信号的波特率,并定时输出看门狗 信号,用于防止软件出现死机现象。主程序根据有无键被按下标志,确定是否输出键码和同步时钟信 号。如有键被按下,则调入由定时中断子程序所确定的键码,输出相应的键码并同时输出同步时钟信 号。主程序流程如图3所示。


图3  主程序流程图

4  设计实例

  下面为一设计实例,要求所设计的小键盘输出F1、F2、 F3、F4、Page UP、Page Down、Esc、Enter 8个PC/AT PS/2键盘信号。8个按键的一端分别接P3.7、P1.0~P1.6端口,8个按键的另一端为公共 接地端。

  本文介绍的PC/AT键盘具有结构简单、设计灵活性强、易于编程、体积小、成本低的特点,并可 根据用户需要随意设计和布放,对使用工控机的各种测试与控制仪器具有通用性。

参考文献

1  ATMEL公司. AT89C2051 Data Sheet
2  MAXIM公司. MAX813L Data Sheet
3  马忠梅. 单片机的C语言应用程序设计. 北京:北京航空航天大学出版社,1999


欢迎进入老古论坛进行讨论
[技术文章] 相关文章:
RS422/RS485网络的无极性接线设计
简介:
摘要 给出一种RS422/485网络中,模块可以接收任意极性直流供电和总线信号的设计方法。该方法允许将2根信号线或直流电源线在传输途中任意极性续接,容忍了布线施工中的反接差错,使工程施工大为方便 关键词 RS422 RS485 无极性 分续线盒 整流电桥 差分曼彻斯特 1 问题提出   现在的很多测控系统是使用RS422或RS485总线互连的。RS422/485总线信号是由4(2)根有极性的差分信号来传输的,不能将其反接。当网络传输距离长或节点多时,在线路上的分续线盒也会很多,很容易将信号线在传输途中接反,从而造成信号无法正常传输。虽然可以查出故障点......

键盘信息泄漏与防泄漏键盘设计
DSP系统监控芯片的选择与使用要点
TPS60101用于低功耗系统的电源解决方案
用GNU工具开发基于ARM的嵌入式系统
DSP/BIOS环境下的数据通信
Windows CE在嵌入式工业控制系统中的应用思考
SX微控制器的虚拟外设及Internet应用
CPU卡的接口特性、传输协议与读写程序设计
用于单片机的以太网网关——网络通
 
下一个:[嵌入式系统]TMP03/04型数字温度传感器的应用
简介:
摘要 介绍TMP03和TMP04型数字温度传感器在远程测温电路中的应用,重点阐述它们与单片机和 数字信号处理器的接口电路及程序设计。 关键词 数字温度传感器 远程测温 接口电路 程序设计 1 远程测温电路   远程测量温度时,传输线上存在着较高的共模电压,须用光耦合器(以下简称光耦)对输出端进 行隔离。三种光耦隔离电路分别如图1(a)、(b)、(c)所示。 图1 三种光耦隔离电路   (a)图为普通光耦隔离电路。TMP03能够承受5 mA以下的灌电流,可直接与光耦中LED发光二极管的阴极连通。此时上拉电阻 R1还起到限流作用,防......
 

上一个:[嵌入式系统]美国国家半导体推出输出电压不超过1V的全新150mA高性能线性稳压器

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:否 执行时间:16毫秒