各位,我用的是51单片机模拟spi信号,怎么能让mosi和miso传数据同步。我每次都只能先发后读,不能发和读同时做
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit CMD=P1^5;
sbit DAT=P1^6;
sbit CLK=P1^7;
sbit CS=P1^4;
uchar date,date1;
delay5us() //@11.0592MHz
{
unsigned char data i;
_nop_();
_nop_();
_nop_();
i = 10;
while (--i);
}
delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
SPI_write(uchar cmd)
{
uchar i;
for(i=0;i<8;i++)
{
CLK=1;
if(cmd&0x80)
CMD=1;
else
CMD=0;
CLK=0;
cmd<<=1;
}
CMD=1;
}
SPI_read(uchar cmd)
{
uchar i,readdat;
for(i=0;i<8;i++)
{
CLK=1;
if(cmd&0x80)
{
DAT=1;
readdat|=1;
}
else
{
DAT=0;
readdat|=0;
}
cmd<<=1;
CLK=0;
}
DAT=1;
return(readdat);
}
main()
{
while(1)
{
CS=0;
_nop_();
date=SPI_write(0x56);
date=SPI_read(0x56);
_nop_();
CS=1;
}
}