北航考研873

我可以使用IO端口来模拟SPI,IIC和异步串行通信。

在您的程序中:

RC2 = 1;//CS

C3 = 0;//SCK应该改成:RC2 = 1;//CS

NOP();

RC3 = 0;//SCK

这是因为PIC单片机操作端口的顺序是“读-修改-写”,有点复杂。请参考参考资料。

还有,每一位的延迟时间要根据通信对象的最大SPI速率来确定,即每一位之间要用几个NOP()语句。