PS/2键盘接口如图11-23所示。其最早出现在IBM的PS/2机子上,因而得此名称。这是一种鼠标和键盘的专用接口,是一种6针的圆形接口,但键盘只使用其中的4针传输数据和供电,其余2个为空脚,如图11-24所示。它们分别是Clock(时钟脚)、Data(数据脚)、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data数据脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。
图11-23 PS/2键盘接口外形图
图11-24 单片机与PS/2键盘接口的连接
键盘和鼠标都可以使用PS/2接口,但是按照PC99颜色规范,鼠标通常占用浅绿色接口,键盘占用紫色接口。虽然从上面的针脚定义看来二者的工作原理相同,但这两个接口还是不能混插,这是由它们在电脑内部不同的信号定义所决定的。
PS/2通信协议是一种双向同步串行通信协议。通信的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通信时,只需要把Clock(时钟脚)拉到低电平。如果是PC和PS/2键盘间的通信,则PC必须做主机,也就是说,PC可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数PS/2设备工作在10~20kHz。推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。每一数据帧包含11、12个位,具体含义如表11-2所列。
表11-2 数据帧格式说明
表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。
ATmega16单片机与PS/2键盘接口的连接电路如图11-24所示,根据PS/2键盘接口引脚的定义和表11-2中关于数据帧格式的说明,可以编程实现单片机对键盘中的按键进行识别,并且可以在液晶显示器上显示出来。
程序详解如下所示。
●目的:PS2键盘。(www.xing528.com)
●功能:PS2键盘液晶显示。
●时钟频率:内部1MHz。
●编译环境:ICC-AVR6.31。
●使用硬件:外接标准键盘和1602液晶屏。
●结果:液晶显示按下的字母和数字(可用Shift,其他功能键不能使用,需要自行添加)。
●操作要求:调节液晶对比度至正常显示。
程序中包含了键盘键值的处理头文件“scancodes.h”、液晶显示处理的头文件“LCD1602.h”和程序中必需的一些关于ATmega16单片机引脚定义的头文件<iom16v.h>和<macros.h>。其中“scancodes.h”和“LCD1602.h”在本书光盘中“AVR配套程序/第11章/PS2例程”内可以找到。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。