PS2键盘控制器.doc_第1页
PS2键盘控制器.doc_第2页
PS2键盘控制器.doc_第3页
PS2键盘控制器.doc_第4页
PS2键盘控制器.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PS/2键盘控制器的设计一、 设计要求:设计一个PS/2键盘控制器,用两个LED数码管以两位十六进制ASCII码显示每一个键盘的编码。二、 PS/2接口及键盘工作原理:(一)键盘工作原理:到目前为止,人们已设计的键盘有83键、84键、101键、102键等多种,采用的一般都是由单片机(8048、8035、8044等)扫描、编码的智能化键盘。当前人们所用的一般都是非编码键盘,它仅仅是按行、列排列起来的的矩阵开关,键盘内部使用的单片机能够自动地识别键的按下与释放,自动生成相应的扫描码(即行列位置码),并以串行方式送往接口。此外,它还具有若干个键扫描码的缓冲能力和出错下的自动重发能力,但是,由于是非编码键盘,所以它向接口提供的只是键的行列位置码(即键盘扫描码),而不是键的含义和功能直接对应的ASCII码,因此设计时需要将键盘扫描码转化成反映键意的ASCII码。由于最初人们设计的键盘只有83键,它的键号(即ASCII码)与键盘扫描码是一致的,随着键盘功能和按键数目的扩充,为了实现各种不同功能和按键数目键盘与PC 机之间的兼容性,84/101/102等键盘的键盘扫描码还是采用了83键的键盘的那83个键盘扫描码,只是在送到PC机以后再由PC机来完成将83个键盘扫描码转化成相应个数的系统扫描码。键盘被按键的识别和行列位置扫描码(即键盘扫描码)产生是由键盘内部的单片机通过译码来实现的。单片机在周期性扫描行、列的同时,读回扫描信号线结果,判断是否有键按下,并计算位置得到行列位置码(即键盘扫描码)。当有键按下时,键盘分两次将行列位置扫描码发送到键盘接口。按下时先发一次,叫接通扫描码,释放时在发一次,叫断开扫描码,断开扫描码与接通扫描码之间是有一定关系的,断开扫描码有两个字节,第一个字节是表明键已释放的前缀F0H,第二个字节与接通扫描码同。目前已有的键盘扫描码共有三套,我们现在使用的一般是第二套键盘扫描码(101,102,104键),其接通扫描码的编码表如下:KEYCODEKEY CODEKEYCODEA1C94654B320EINSERTE0,70C21-4EHOMEE0,6CKEYCODEKEYCODEKEYCODED23=55PGUPE0,7DE245DDELETEE0,71F2BBKSP66ENDE0,69G34SPACE29PGDNE0,7AH33TAB0DU ARROWE0,75I43CAPS58L ARROWE0,6BJ3BL SHIFT12D ARROWE0,72K42R SHIFT14R ARROWE0,74L4BL WINE0,1FNUM77M3AL ALT11KP/E0,4AN31R SHIFT59KP*7CO44R CTRLE0,14KP-7BP4DR WIN E0,27KP+79Q15R ALTE0,11KP ENE0,5AR2DAPPSE0,2FKP.71S1BENTER5AKP070T2CESC76KP169U3CF105KP272V2AF206KP37AW1DF304KP46BX22F40CKP573Y35F503KP674Z1AF60BKP76C045F783KP875116F80AKP97D21EF901;4C326F100952425F1178,4152EF120749636PRINTE0,12/4AKEYCODEKEYCODEKEYCODE73DSCROLL7E5B83EPAUSEE1,14上表中的数据均为16进制数。(二)PS/2硬件接口 键盘与其他硬件的接口采用PS/2硬件接口,其物理连接方式通常有2种:5pinDIN和6pinminiDIN,目前所用的连接方式一般是后一种,其引脚排列和外形如下图所示:(三)PS/2通信协议PS/2通信协议是键盘与其他硬件通信时的一种半双工通信协议,键盘通过Data线向外发送数据,数据时钟由键盘产生,在协议中数据的传送格式为短帧格式,一般为11位,各位的含义如下图所示:StartD0D1D2D3D4D5D6D7ParityStopStart:起始位,总为0(低电平)D0D7:8位数据位(低位在前,高位在后)Parity:奇偶校验位(为奇校验)Stop:停止位,总为1(高电平) 键盘向外发送数据的时序图如下图所示: 键盘首先检查Clock线和Data线是否同时为高电平时,若是,则键盘产生Clock信号,并将待发的数据按照数据帧的格式逐位放在数据线上,数据线在时钟的高电平期间改变状态,时钟的下降沿将数据锁定到数据线上,此时外界就可以到数据线上读取数据。键盘同步时钟的最大频率为33KHZ,一般情况下使用1020KHZ的频率。三、程序设计思路本次设计需要设计以下5部分程序:串并转换程序,时钟分频程序,缓冲程序,扫描码与ASCII码转换程序,LED显示驱动程序。其中部分程序实现的功能简要陈诉如下:1、 串并转换程序该程序主要是接收由键盘Data线发送过来的11位串行数据。用的是11位移位寄存器的基本原理。2、 时钟分频程序该程序主要是实现将硬件箱上的25175M的时钟分频。用的是计数器的基本原理。3、 缓冲程序该部分程序主要实现的功能是将键盘按下的32个键进行缓存,在硬件箱上实现人为控制显示。用的是FIFO(先如先出堆栈)的基本原理。4、 扫描码与ASCII码转换程序该部分程序实现将由键盘发送过来的键盘扫描码转换成ASCII码。三、 源程序PACKAGE huancun_constants ISconstant data_width: POSITIVE:=8;constant num_words: POSITIVE:=32;constant data_widthu: POSITIVE:=5;END huancun_constants;LIBRARY ieee;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;LIBRARY lpm;USE lpm.lpm_components.ALL;LIBRARY work;USE work.huancun_constants.ALL;ENTITY dataflow ISPORT( clk:in std_logic; clk_25m: INSTD_LOGIC; datain: INSTD_LOGIC; read: in std_logic; ledsegh: OUT STD_LOGIC_vector(0 to 7); ledsegl: OUT STD_LOGIC_vector(0 to 7);END dataflow;ARCHITECTURE sxj OF dataflow ISSIGNAL data: STD_LOGIC_vector(0 TO 10);SIGNAL indata,saomiao,asc: STD_LOGIC_vector(0 TO 7); SIGNAL h4,l4:STD_LOGIC_vector(0 to 3); SIGNAL clk_1khz:STD_LOGIC; SIGNAL op:STD_LOGIC; SIGNAL s:std_logic_vector(0 to 14);beginhuancun:LPM_FIFOGENERIC MAP(LPM_WIDTH=data_width,LPM_NUMWORDS=num_words,LPM_WIDTHU=data_widthu);PORT MAP(clock=clk_1khz,wrreq=data(10),rdreq=read,data=indata,q=saomiao);h4=asc(4 to 7);l4=asc(0 to 3);process(clk)beginif(clkevent and clk=0)thendata(0)=datain;data(1)=data(0);data(2)=data(1);data(3)=data(2);data(4)=data(3);data(5)=data(4);data(6)=data(5);data(7)=data(6);data(8)=data(7);data(9)=data(8);data(10)=data(9);end if;op=data(2)xor data(3)xor data(4)xor data(5)xor data(6)xor data(7)xor data(8)xor data(9)xor 1;end process;process (clk)beginif(data(10)=0 and data(0)=1 and data(1)=op)thenindata=data(2 to 9);end if;end process;process(clk_25m) begin if(clk_25mevent and clk_25m=1) then if(s=12587) then s=000000000000000; clk_1khz=not clk_1khz; else sascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascascledseghledseghledseghledseghledseghledseghledseghledseghledseghledseghl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论