文档介绍:肂莀膇PS/2PC键盘编程资料蒆莅膄前言:     汇集了PS/2PC键盘编程的基本参考资料,适合于初用PS/2的朋友!,+5VDC螁聿膈5葿肄膆CLK袁蒀莁Clock袇袃蒇6羀袁羅n/c蕿袆芄Notconnected肀羈螁 (LSB)低位在前芇蒇袈1个奇偶校验位薄膁肈奇校验羈芆螅1个停止位蚄薂虿总是逻辑1莆羄蚈1个应答位螄螈袆仅用在主机对设备的通讯中膈螃袃表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。袄腿莃 (a)键盘发送时序;(b)键盘接收时序芈薅芅注::螆莄腿(1)检测时钟线电平,如果时钟线为低,则延时50μs;         (2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);         (3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向 PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);         (4)延时20μs(如果此时正在发送起始位,则应延时40μs);        (5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;         (6)输出8个数据位到数据线上;          (7)输出校验位;          (8)输出停止位(1);          (9)延时30μs(如果在发送停止位时释放时钟信号则应延时50μs);肃肈蚄通过以下步骤可发送单个位:          (1)准备数据位(将需要发送的数据位放到数据线上);          (2)延时20μs;          (3)把时钟线拉低;          (4)延时40μs;          (5)释放时钟线;          (6)延时20μs。PS/2设备从PC机接收一个字节蒈肃莄由于PS/2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而PS/2设备则要配合PC机才能读到准确的数据。具体连接步骤如下:膃葿膁(1)等待时钟线为高电平。         (2)判断数据线是否为低,为高则错误退出,否则继续执行。         (3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。         (4)读地址线上的校验位内容,1个bit。         (5)读停止位。         (6)如果数据线上为0(即还是低电平),PS/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS/2设备没有读到停止位,则表明此次传输出错)。                   (7输出应答位。         (8)检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。         (9)延时45μs,以便PC机进行下一次传输。羆膆衿读数据线的步骤如下:芃袀螆(1)延时20μs;         (2)把时钟线拉低         (3)延时40μs         (4)释放时钟线         (5)延时20μs         (6)读数据线。蚇袅蒂下面的步骤可用于发出应答位;莃芀蚁(1)延时15μs;         (2)把数据线拉低;         (3)延时5μs;         (4)把时钟线拉低;         (5)延时40μs;         (6)释放时钟线;         (7)延时5μs;         (8)释放数据线。:肅蚃蚀注意:键盘的返回值并不是和一般ASCII码相对应!蒃蚁袇键盘的处理器如果发现有键被按下释放或按住键盘将发送扫描码的信息包到计算机扫描码有两种不同的类型通码和断码当一个键被按下或按住就发送通码当一个键被释放就发送断码每个按键被分配了唯一的通码和断码这样