单片机如何通过ps2向pc传输数据

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:07:28
我想将数据经过ps/2接口传输到pc,这样数据直接在文本上可显示,怎样编程?
连接没问题,就是像"12345""abcde"这些数据怎么编程使其能在pc文本上直接输出

第一,首先要知道PS/2接口跟PC是怎样连的。PC里的ps/2一般接键盘或鼠标。
PS/2的针脚 :
6* u *5
4* *3
2* *1
1 n/c 不连
2 DATA KeyData-
3 VCC Power,+5VDC 电源5伏
4 GND GND 地线
5 n/c 不连
6 CLK Clock- 时钟线

接线黄、红、白、绿对应的针脚如下

键盘 鼠标
黄 蓝 3
红 橙 4
白 白 6
绿 绿 2
接下来,你要知道数据是怎样经过ps/2接口传输到pc的?
数据是变成了2进制数后经过ps/2接口传递到PC的,常用串行方式传递数据。
所以单片机要用串行方式和ps/2通讯。即单片机的TXD做移位脉冲,接PS/2的6脚;RXD是数据线,接PS/2的2脚.
还不明白给hychyc_2008发消息。

ps2是11位。
PS/2帧的第一位是起始位,为0,然后是8位数据位,发送键盘扫描码的一个字节(扫描码为1-4个字节),然后是奇偶校验位,最后是停止位,为1。这些是在数据线(即1号引脚线)上发送的。无键按下时,数据线和始终线都保持为1。当有键按下时,时钟线CLOCK送出脉冲,同时数据线送出数据。主机(此处是89c51 MCU)在始终脉冲的下降沿对数据线采样获得数据。键盘扫描码包括通码和断码,当键按下时发送通码,抬起时发送断码。更详细的内容可参考所附的《PS/2 技术参考》。
根据上述原理,我这样设计了实验:将键盘的脉冲线接至89c51的外部中断输入口(INT0或INT1),当键按下和抬起时有脉冲产生,此脉冲引发MCU 中断。将键盘的DATA线连至89c51的输入口(如P1.0)。在中断处理程序中,从输入口读入数据,然后通过循环移位对读进的数据位进行处理,1(起始位)、10(奇偶校验)、11(停止位)可抛弃,如不嫌麻烦也可将奇偶校验位加以应用。当一个数据帧收完后,将处理后剩下的2-9位(即扫描码)通过串口发至PC机,通过PC机的串口监视软件(如“串口调试助手”)