51单片机怎样实现SPI通讯

51单片机怎样实现SPI通讯,第1张

用传统的51单片机实现SPI通讯,需要用I/O脚来模拟SPI协议,这比较麻烦。

选用STC8系列单片机,就具有了SPI接口了 ,只需要对寄存器 *** 作就行了。方便了很多了。如下图,这是STC8系列中的4个子系列,还有其它的子系列,就不再列举了。

这是我复制的,一搜一大堆

#include <reg52.h>

sbit SPI_DI =P0^1//MMC数据输入

sbit SPI_DO =P0^0//MMC数据输出,可不接

sbit SPI_SCL=P0^2//时钟线

void Write_Byte(unsigned char value)

{

unsigned char i

for (i=0i<8i++)

{

if (((value>>(7-i))&0x01)==0x01)

SPI_DI=1

else SPI_DI=0

SPI_SCL=0

delay(5)

//必须要加延时,否则会因为 *** 作太快而不响应。

SPI_SCL=1

delay(5)

//必须要加延时,否则会因为 *** 作太快而不响应。

}

}

unsigned char Read_Byte()

{

unsigned char temp=0

unsigned char i

for (i=0i<8i++)

{

SPI_DO=1

SPI_SCL=0

delay(5)

temp=(temp<<1)+(unsigned char)SPI_DO

SPI_SCL=1

delay(5)

}

return (temp)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7747061.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存