关于接线,
1-DATA(DI):信号流向从手柄到主机。此信号是一个8 bit的串行数据,同步传送于时钟下降沿(输入输出信号在时钟信号由高 到低时变化,所有信号的读取在时钟前沿到电平变化之前完成。)
2-CMD(DO):信号流向从主机到手柄。此信号和DATA相对,同样是一个8 bit的串行数据,同步传送于时钟下降沿。
程序:
我们可以使用SPI,也可以自己写驱动,软件模拟波形。
void PS2_Cmd(u8 CMD)
{
volatile u16 ref=0x01;
Data[1] = 0;
for(ref=0x01;ref<0x0100;ref<<=1)
{
if(ref&CMD)
{
DO_H; //输出一位控制位
}
else DO_L;
CLK_H; //时钟拉高
DELAY_TIME;
CLK_L;
DELAY_TIME;
CLK_H; //手动拉出一个下降沿使DO和DI得以同时传送
if(DI)
Data[1] = ref|Data[1]; //运用或运算按位存入Data[1]的8位
}
delay_us(16);
}
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
走着的小站
本文地址: 关于ps2驱动时序图的理解
本文地址: 关于ps2驱动时序图的理解