用单片机实现pc键盘输入

上传人:子 文档编号:42022590 上传时间:2018-05-31 格式:DOC 页数:6 大小:27.50KB
返回 下载 相关 举报
用单片机实现pc键盘输入_第1页
第1页 / 共6页
用单片机实现pc键盘输入_第2页
第2页 / 共6页
用单片机实现pc键盘输入_第3页
第3页 / 共6页
用单片机实现pc键盘输入_第4页
第4页 / 共6页
用单片机实现pc键盘输入_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《用单片机实现pc键盘输入》由会员分享,可在线阅读,更多相关《用单片机实现pc键盘输入(6页珍藏版)》请在金锄头文库上搜索。

1、用单片机实现用单片机实现 PCPC 键盘输入键盘输入摘 要:在某些特殊控制场合,需要通过主控机的串行口和受控机的 PS/2 键盘口,实现主控机对受控机的模拟键盘输入。本文介绍了串行口和键盘口的通讯接口的软、硬件设计方法。关键词:串行口 PS/2 键盘口 通讯 单片机键盘作为微机的基本输入设备,是微机不可缺的一部分。但在某些特殊的场合,我们要对受控机进行程序设计的特殊输入控制,则需要一接口实现串行口和 PS/2 键盘口通讯,这样在主控机上通过对串行口的编程就能实现对受控机的模拟键盘输入。笔者开发的该接口以 MCS51 单片机为核心,原理图如图 1 所示,利用 MCS51 的全双工异步串行 I/O

2、 口实现与主控机的异步串行通讯,而和受控机PS/2 键盘口的同步串行通讯则通过双向数据 I/O 口控制同步时钟和数据位。.1和主控机的异步串行通讯异步通讯按帧传送数据,它利用每一帧的起、止信号来建立发送与接受之间的同步,每帧内部各位均采用固定的时间间隔,但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个发送和接收的。11 硬件接口设计与主控机的异步串行通讯基于 RS-232 总线标准。为了使接口具有更好的兼容性和工作稳定性,我们用 MAX232E 作为数据传送器。MAX232E 是专为 RS-232 通讯而设计,低功耗,外接

3、电容小,抗干扰能力强,管脚有 ESD 保护并且能支持到 120k 波特率的数据传输,能很好地解决 PC 机和单片机电平不匹配问题。同时它增强了数据驱动能力,能支持 12 米的串行线。12 软件接口设计异步通讯必须在字符格式中设置起始位和结束位,以使收发双方取得同步。其数据格式为 1 位起始位+8 位数据位+奇偶校验位+1 位或2 位的停止位。其中起始位为低电平,数据位传送时先低后高,停止位为高电平。笔者在电路板上设计了异步串行通讯跳线,可设置通讯的波特率、奇偶校验位和停止位,在单片机软件的开始读取跳线设置值而后初始化串行口,从而支持多种通讯数据格式。PC 机启动时将向串行口发送两个字节的 00

4、H 以检测串行口,同时防止主控机上的串行口其他的干扰信息,通讯时笔者设计的报文以A0H,CDH 作为联络信息开头,第三字节为数据长度,之后为我们要传送的数据,这样有效地过滤掉干扰信息。单片机按串行口中断方式接收主控机的数据,收到有效格式的数据后,解析报文,提取出真实的数据,传送给受控机的 PS/2 口。2和受控机的同步串行通讯同步通讯以发送端和接收端使用同一时钟信号来同步,在时钟脉冲的作用下同步地收发数据。该接口与受控机之间通过标准的六芯PS/2 键盘插头相连接。其信号线包括:一根时钟线、一根数据线、一根地线和一根给单片机供电的电源线,还有两根空线。所传输的每一字符由 11 位组成:1 位起始

5、位,8 位数据位,1 位奇偶校验位和 1 位停止位。这 11 位数据在时钟脉冲的同步作用下,实现数据的传送,传送的信号低位在前。由于只有一根数据线和时钟线,所以,任何时刻只能有一方发送数据。无通讯时,时钟线和和数据线都设为高电平的初始状态。受控机上的键盘接口通过设置数据线和时钟线的状态,指导模拟键盘的通讯接口收发数据:(1).时钟线为低电平,禁止传送数据。(2).时钟线为高电平,数据线为低电平,通知模拟键盘接收命令。(3).时钟线和数据线都为高电平,允许模拟键盘发送数据单片机的5V 电源由受控机通过 PS/2 键盘插头的电源线提供,同时将两个 I/O 双向数据口分别作为同步时钟线和数据线,与受

6、控机进行通讯。21 发送数据首先检测时钟线和数据线的状态,当两者都为高电平时,开始传送数据。每传送一位,时钟同步地产生一个脉冲。当受控机收到该脉冲后,将时钟线置成低电平并保持一段时间,禁止发送方继续发送,以便于检验数据正确性,数据校验采用偶校验。因此建议在每个字符的发送间隔有一定的延时。以下为笔者编写的发送寄存器 A 的八位数据给受控机 PS/2 口的子程序。SendToPs: MOV KEY,C ;发送一位数据JNB CLOCK,$ ;等待至时钟线为 1 ACALL DELAY10JNB KEY, ;等待至数据线为 1 CLR CLOCK ;同步信号产生一个脉冲CLR KEY ;数据线置 0

7、 ACALL DELAY30ACALL DELAY10 ;延时 10us SETB CLOCKCLR CLOCK ;时钟线置 0 DJNZ R1,TC ;共发送 8 位数据位和ACALL DELAY30 ;延时 30us ;1 位偶校验位SETB CLOCK ;时钟线置 1 开 ACALL DELAY10;始发送起始位 ACALL DELAY10MOV R1,#9 SETB KEY ;发送停止位MOV C,P ;奇校验C ACALL DELAY10CPL C ;偶检验C CLR CLOCKTC: ACALL DELAY30ACALL DELAY10 SETB CLOCKACALL DELAY1

8、0RRC A RET22 接收数据在特殊场合,例如开机键盘自检时,PC 机会向 PS/2 键盘口发送自检命令,如果无响应则无法通过硬件检测而无法启动操作系统。因此在受控机开机时,单片机上电复位,在单片机应能接收到键盘的命令并作出响应。如果一秒后没收到,则受控机的 CMOS 设置忽略键盘自检,单片机不作响应继续执行下面的程序。PC 机复位键盘过程:先发复位命令 FFH,单片机收到以 FAH 应答,PC 机收到后,置时钟线和数据线为高电平,单片机检测到此状态开始内部自测试,测试完成发送 AAH 表示自检结束,否则发 FDH 表自检出错。3编码格式实际的标准键盘在有按键按下时,键盘向 PC 机发送两

9、行编码,一组为键稳定闭合时的扫描码,一组为闭合健断开时的断开码。具体各键的扫描码可以查询有关资料,断开码为两个字节,等于 F0H该键的扫描码。主控机通过通讯接口向受控机进行模拟键盘输入时,向串行口发送的编码单片机提取后发送给受控机的 PS/2 口,因此主控机向串行口发送的编码应符合下列格式:主控机向受控机模拟输入字符 a,即按下 a 键(扫描码为 1CH):A0H,CDH,03H,1CH,F0H,1CH,如果模拟输入大写 A,即按住Shift 键(扫描码为 12H)和 a 键:A0H,CDH,06H,12H,1CH,F0H,1CH,F0H,12H。该通讯接口目前已形成初步产品提供给软件开发商,其体积小、硬件成本低、工作稳定且兼容性好,有较好的实用前景。参考文献:1 李大友:微型计算机接口技术,清华大学出版社,19982 余锡存 曹国华:单片机原理及接口技术,西安电子科技大学出版社,20003 熊宁 王景波:微机键盘通信发式及其编程,宁夏大学学报(自然科学版) ,第 18 卷第 4 期

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号