单片机系统中PS2键盘驱动程序设计.doc

单片机系统中PS2键盘驱动程序设计.doc

ID:28366718

大小:244.50 KB

页数:7页

时间:2018-12-09

单片机系统中PS2键盘驱动程序设计.doc_第1页
单片机系统中PS2键盘驱动程序设计.doc_第2页
单片机系统中PS2键盘驱动程序设计.doc_第3页
单片机系统中PS2键盘驱动程序设计.doc_第4页
单片机系统中PS2键盘驱动程序设计.doc_第5页
资源描述:

《单片机系统中PS2键盘驱动程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、单片机系统中PS/2键盘驱动程序设计摘要分析PS/2协议;介绍PS/2标准健盘的第二套扫描码和命令集,并给出在单片机系统中支持PS/2健盘的硬件连接方式和利用KeilC51语言实现的驱动程序设计及部分代码。该驱动程序可以方便地移植到其他单片机或嵌入式系统中。关健词PS/2协议PS/2健盘单片机驱动程序在单片机系统中,经常使用的键盘都是专用键盘。这类键盘都是单独设计制作的,成本高,连线多,且可靠性不高。这些问题在那些要求键盘按键较多的应用系统中显得更加突出。与此相比,在PC系统中广泛使用的PS/2键盘具有价格低、通用可靠,且使用的连线少(仅使用2根信号线)的特点,并可满足多数系统

2、的要求。因此,在单片机系统中应用PS/2键盘是一种很好的选择。本文在分析PS/2协议和PS/2键盘工作原理与特点的基础上,给出在AT89C51单片机上实现对PS/2键盘支持的硬件连接方法以及驱动程序的设计实现。1PS/2协议现在PC机广泛采用的PS/2接口为mini-DIN6引脚的连接器。其引脚如图1所示。740)this.width=740"border=undefined>PS/2设备有主从之分,主设备采用female插座,从设备采用male插座。现在广泛使用的PS/2键盘鼠标均工作在从设备方式下。PS/2接口的时钟与数据线都是集电极开路结构的,必须外接上拉电阻。一般上拉电

3、阻设置在主设备中。主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生。(1)从设备到主设备的通信当从设备向主设备发送数据时,首先会检查时钟线,以确认时钟线是否是高电平。如果是高电平,从设备就可以开始传输数据;否则,从设备要等待获得总线的控制权,才能开始传输数据。传输的每一帧由11位组成,发送时序及每一位的含义如图2所示。740)this.width=740"border=undefined>每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1。从设备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟下降沿读人数据线状态。(2)主设

4、备到从设备的通信主设备与从设备进行通信时,主设备首先会把时钟线和数据线设置为“请求发送”状态。具体方式为:首先下拉时钟线至少100us来抑制通信,然后下拉数据线“请求发送”,最后释放时钟线。在此过程中,从设备在不超过10us的间隔内就要检查这个状态。当设备检测到这个状态时,将开始产生时钟信号。此时数据传输的每一帧由12位构成,其时序和每一位含义如图3所示。740)this.width=740"border=undefined>与从设备到主设备通信相比,其每帧数据多了一个ACK位。这是从设备应答接收到的字节的应答位,由从设备通过拉低数据线产生,应答位ACK总是为。。主设备到从设备

5、通信过程中,主设备总是在时钟为低电平时改变数据线的状态,从设备在时钟的上升沿读入数据线状态。2PS/2键盘的编码与命令集(1)PS/2扭盘的编码现在PC机使用的PS/2键盘都默认采用第二套扫描码集。该扫描码集可参考文献[1]。扫描码有两种不同的类型:通码(makecode)和断码(breakcode)。当一个键被按下或持续按住时,键盘会将该键的通码发送给主机;而当一个键被释放时,键盘会将该键的断码发送给主机。根据键盘按键扫描码的不同,在此可将按键分为如下几类:第一类按键,通码为1字节,断码为OxFO+通码形式。如A键,其通码为Ox1C,断码为OxFOOx1C,第二类按键,通码为

6、2字节0xEO+0xXX形式,断码为OxEO+OxFO+OxXX形式。如rightctrl键,其通码为OxEO0x14,断码为OxEOOxFO0x14,第三类特殊按键有两个,printscreen键通码为OxEO0x12OxEOOx7C,断码为OxEOOxFOOx7COxEOOxFO0x12;pause键通码为OxEl0x140x77OxElOxFO0x14OxFO0x77,断码为空。组合按键的扫描码发送按照按键发生的次序,如以下面顺序按左SHIFT+A键:1按下左SHIFT键,2按下A键,3释放A键,4释放左SHIFT键,那么计算机上接收到的一串数据为0x12Ox1COxFO

7、Ox1COxFO0x12,在驱动程序设计中,就是根据这样的分类来对不同的按键进行不同处理的。(2)PS/2键盘的命令集主机可以通过向PS/2键盘发送命令来对键盘进行设置或者获得键盘的状态等操作。每发送一个字节,主机都会从键盘获得一个应答0xFA“重发resend"和“回应echo',命令例外)。下面简要介绍驱动程序在键盘初始化过程中所用的指令(详细键盘命令集见参考文献[1]):OxED主机在本命令后跟随发送一个参数字节,用于指示键盘上numlock,capslock,scrolllockle

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。