read p1
while (!clk) //ifclk is low wait
{
;
}
clk=1;data=1;//send 1 to p1 then read p1
if(clk==1)
{
delay_us(30);//
}
if(clk==1&&data==1)//send data
{
data=0;//start bit 0
delay_us(10);
clk=0;
delay_us(5);//
temp=x;
for(i=0;i<8;i++)//send 8 bits lsbfirst
{
clk=1;
delay_us(5);
char_temp=temp&0x01;
if(char_temp==0x01)
{
data=1;
}
else
{
data=0;
}
//data=(bit)(temp&0x01);
//lsb
delay_us(10);
clk=0;
delay_us(5);
temp=temp>>1;
}
clk=1;//send check bit
delay_us(5);
data=flag_check;
delay_us(10);
clk=0;
delay_us(5)
clk=1;//send stop bit
delay_us(5);
data=1;
delay us10
clk=0
delay_us(5);
clk=1;
delay_us(30);
clk=1;data=1;//send 1 to p1 then read p1
if(clk==1&&data==0)
{
return; //pc is sending data to mcu, go to
receiving function
}
inhibit=0; //enable standard keyboard
}
5 结论
ps/2接口协议是现在大多数键盘、鼠标与pc机通讯的标准协议。其中鼠标对pc机的通讯更为简单,只是传输数据的内容不一样而已。充分理解ps/2接口协议,可以帮助设计者自主开发一些工控机上的专用键盘等外设,并能够按照用户的要求开发出专用的多功能键盘。该工控机的双键盘设计目前已被某工控公司所采纳,并已作为组件加入到产品当中。
上一页 [1] [2] [3]