随着嵌入式系统的飞速发展,嵌入式 PC 得到了广泛应用。标准的 PC 键盘由于体积大、按键多等原因,在多数情况下不能满足要求。本文在介绍 PS/2 通信协议的基础上,利用 AT89C52 实现了一种 PC 非标准键盘的设计,给出其完整的硬件实现电路图和主要的软件开发方法。该键盘具有结构简单、工作稳定、便于扩展等特点,并已在某型航空图像回传系统中得到具体应用。
图 1 为该键盘电路原理图,由 ATMEL 公司的微控制器 AT89C52、逻辑系统、矩阵键盘三部分组成。AT89C52 单片机主要完成键盘扫描,确定键盘闭合断开的信息,并发送键码和同步时钟到工控机;逻辑系统提供起振信号及看门狗定时复位功能,防止出现死机;矩阵键盘为 4×4 的行列式键盘,当有键按下时产生低电平触发信号,便于单片机检测有效的按键操作。该键盘由 4×4=16 个按键组成,其中行线为 P0.4~P0.7,列线为 P0.3~P0.0。P3.0 为键码数据输出,P3.1 为同步时钟,分别输出到嵌入式 PC 的 PS/2 端口,+5V 电源由主机提供。由于 AT89C52 的 I/O 端口为 32 个,除看门狗电路的输入输出端 CS、SI、SO、SCK 以及键码数据输出端 Data 和时钟输出端 Clock 外,还剩 26 个可用端口,这样其最大可独立响应 13×13=169 个键的输入,不仅可满足标准键盘的多键需求,也可满足工控机常用控制键的要求。
X25045 为看门狗电路,它实时接收来自 AT89C52 的 CS 信号,并自动判断两次信号的间隔时间:当时间间隔达到设定时间(即未按时收到信号)时,其 RST 输出端输出低电平,使 AT89C52 复位;在正常喂狗的情况下,其 RST 输出端保持高电平。此外增加了发光二极管 LED,用来指示键盘的工作状态。

图 1 键盘电路原理图
AT89C52 微控制器具有如下特点:(1)具有 8KB 可编程闪存;(2)256×8 字节内部 RAM;(3)32 根可编程 I/O 线;(4)3 个 16 位定时计数器;(5)8 个中断源;(6)可编程串行 UART 通道。