关于SPI 模拟时序的问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 05:30:20
我想用51单片机的IO口模拟SPI串行通信 请各位大侠指点一下代码 思路 等等 小弟完全没有思路 谢谢

//*****************************************************************************************
//函数名:SpisendByte(INT8U dat)
//输入:发送的数据
//输出:无
//功能描述:SPI发送一个字节
//*****************************************************************************************
INT8U SpiTxRxByte(INT8U dat)
{
INT8U i,temp;
temp = 0;

SCK = 0;
for(i=0; i<8; i++)
{
if(dat & 0x80)
{
MOSI = 1;
}
else MOSI = 0;
dat <<= 1;

SCK = 1;
_nop_();
_nop_();

temp <<= 1;
if(MISO)temp++;
SCK = 0;
_nop_();
_nop_();
}
return temp;
}

//*****************************************************************************************
//函数名:void RESET_CC1100(void)
//输入:无
//输出:无
//功能描述:复位CC1100
//*****************************************************************************************
void RE