我现在用51单片机的IO口模拟SPI通信中的从机,我用PIC16F876作为主机给51发送数据。我想问一下用51模拟从机的时候对于SCK我要对它写入数据吗?51的SCK应该是PIC给的啊。 51我写的代码如下: sbit SCK = P1^4; //时钟 sbit CS = P1^5; //片选 sbit SDI = P1^7; //主机发送数据,从机接收数据 uchar SPIreceiveByte() { uchar n = 8; uchar tdata; SCK = 1; while(n--) { delay(1); SCK = 0; delay(1); tdata = tdata<<1; if(SDI == 1) { tdata = tdata|0x01; } else { tdata = tdata&0xfe; } SCK = 1; } return(tdata); }
这样写有问题吗? PIC是每隔10MS就给51发送一次数据。 |