资源描述:
《PS2键盘控制器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PS/2键盘控制器的设计一、设计要求:设计一个PS/2键盘控制器,用两个LED数码管以两位十六进制ASCII码显示每一个键盘的编码。二、PS/2接口及键盘工作原理:(一)键盘工作原理:到目前为止,人们已设计的键盘有83键、84键、101键、102键等多种,采用的一般都是由单片机(8048、8035、8044等)扫描、编码的智能化键盘。当前人们所用的一般都是非编码键盘,它仅仅是按行、列排列起来的的矩阵开关,键盘内部使用的单片机能够自动地识别键的按下与释放,自动生成相应的扫描码(即行列位置码),并以串行方式送往接口。此外,它还具有若干个键扫描码的缓冲能力和出错下的自动重发能力,
2、但是,由于是非编码键盘,所以它向接口提供的只是键的行列位置码(即键盘扫描码),而不是键的含义和功能直接对应的ASCII码,因此设计时需要将键盘扫描码转化成反映键意的ASCII码。由于最初人们设计的键盘只有83键,它的键号(即ASCII码)与键盘扫描码是一致的,随着键盘功能和按键数目的扩充,为了实现各种不同功能和按键数目键盘与PC机之间的兼容性,84/101/102等键盘的键盘扫描码还是采用了83键的键盘的那83个键盘扫描码,只是在送到PC机以后再由PC机来完成将83个键盘扫描码转化成相应个数的系统扫描码。键盘被按键的识别和行列位置扫描码(即键盘扫描码)产生是由键盘内部的单片
3、机通过译码来实现的。单片机在周期性扫描行、列的同时,读回扫描信号线结果,判断是否有键按下,并计算位置得到行列位置码(即键盘扫描码)。当有键按下时,键盘分两次将行列位置扫描码发送到键盘接口。按下时先发一次,叫接通扫描码,释放时在发一次,叫断开扫描码,断开扫描码与接通扫描码之间是有一定关系的,断开扫描码有两个字节,第一个字节是表明键已释放的前缀F0H,第二个字节与接通扫描码同。目前已有的键盘扫描码共有三套,我们现在使用的一般是第二套键盘扫描码(101,102,104键),其接通扫描码的编码表如下:KEYCODEKEYCODEKEYCODEA1C946[54B320EINSERT
4、E0,70C21-4EHOMEE0,6CKEYCODEKEYCODEKEYCODE11PS/2键盘控制器的设计D23=55PGUPE0,7DE245DDELETEE0,71F2BBKSP66ENDE0,69G34SPACE29PGDNE0,7AH33TAB0DUARROWE0,75I43CAPS58LARROWE0,6BJ3BLSHIFT12DARROWE0,72K42RSHIFT14RARROWE0,74L4BLWINE0,1FNUM77M3ALALT11KP/E0,4AN31RSHIFT59KP*7CO44RCTRLE0,14KP-7BP4DRWINE0,27KP+7
5、9Q15RALTE0,11KPENE0,5AR2DAPPSE0,2FKP.71S1BENTER5AKP070T2CESC76KP169U3CF105KP272V2AF206KP37AW1DF304KP46BX22F40CKP573Y35F503KP674Z1AF60BKP76C045F783KP875116F80AKP97D21EF901;4C326F1009‘52425F1178,4152EF1207`49636PRINTE0,12/4AKEYCODEKEYCODEKEYCODE11PS/2键盘控制器的设计73DSCROLL7E]5B83EPAUSEE1,14上表中的数据
6、均为16进制数。(二)PS/2硬件接口键盘与其他硬件的接口采用PS/2硬件接口,其物理连接方式通常有2种:5—pinDIN和6—pinmini—DIN,目前所用的连接方式一般是后一种,其引脚排列和外形如下图所示:(三)PS/2通信协议PS/2通信协议是键盘与其他硬件通信时的一种半双工通信协议,键盘通过Data线向外发送数据,数据时钟由键盘产生,在协议中数据的传送格式为短帧格式,一般为11位,各位的含义如下图所示:StartD0D1D2D3D4D5D6D7ParityStopStart:起始位,总为‘0’(低电平)D0~D7:8位数据位(低位在前,高位在后)Parity:奇偶
7、校验位(为奇校验)Stop:停止位,总为‘1’(高电平)键盘向外发送数据的时序图如下图所示:11PS/2键盘控制器的设计键盘首先检查Clock线和Data线是否同时为高电平时,若是,则键盘产生Clock信号,并将待发的数据按照数据帧的格式逐位放在数据线上,数据线在时钟的高电平期间改变状态,时钟的下降沿将数据锁定到数据线上,此时外界就可以到数据线上读取数据。键盘同步时钟的最大频率为33KHZ,一般情况下使用10~20KHZ的频率。三、程序设计思路本次设计需要设计以下5部分程序:串并转换程序,时钟分频程序,缓冲程序,扫