[指导]51单片机模拟spi串行接口程序

  • 格式:doc
  • 大小:21.50 KB
  • 文档页数:8

下载文档原格式

  / 15
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[指导]51单片机模拟spi串行接口程序51单片机模拟spi串行接口程序

51单片机模拟spi串行接口程序,在keilc51下编写

sbit CS=P3^5;

sbit CLK= P1^5;

sbit DataI=P1^7;

sbit DataO=P1^6;

#define SD_Disable() CS=1 //片选关

#define SD_Enable() CS=0 //片选开

unsigned char SPI_TransferByte(unsigned char val)

{

unsigned char BitCounter;

for(BitCounter=8; BiCounter!=0; BitCounter--)

{ CLK=0;

DataI=0; // write

if(val&0x80) DataI=1;

val<<=1;

CLK=1;

if(DataO)val|=1; // read

}

CLK=0;

return val;

}sbit CLK= P1^5;

sbit DataI=P1^7;

sbit DataO=P1^6;

#define SD_Disable() CS=1 //片选关

#define SD_Enable() CS=0 //片选开

unsigned char SPI_TransferByte(unsigned char val) {

unsigned char BitCounter;

for(BitCounter=8; BiCounter!=0; BitCounter--) { CLK=0;

DataI=0; // write

if(val&0x80) DataI=1;

val<<=1;

CLK=1;

if(DataO)val|=1; // read

}

CLK=0;

return val;

}

sbit CLK= P1^5;

sbit DataI=P1^7;

sbit DataO=P1^6;

#define SD_Disable() CS=1 //片选关

#define SD_Enable() CS=0 //片选开

unsigned char SPI_TransferByte(unsigned char val)

{

unsigned char BitCounter;

for(BitCounter=8; BiCounter!=0; BitCounter--) { CLK=0;

DataI=0; // write

if(val&0x80) DataI=1;

val<<=1;

CLK=1;

if(DataO)val|=1; // read

}

CLK=0;

return val;

}

sbit CLK= P1^5;

sbit DataI=P1^7;

sbit DataO=P1^6;

#define SD_Disable() CS=1 //片选关

#define SD_Enable() CS=0 //片选开

unsigned char SPI_TransferByte(unsigned char val) {

unsigned char BitCounter;

for(BitCounter=8; BiCounter!=0; BitCounter--) { CLK=0;

DataI=0; // write

if(val&0x80) DataI=1;

val<<=1;

CLK=1;

if(DataO)val|=1; // read

}

CLK=0;

return val;

}

sbit CLK= P1^5;

sbit DataI=P1^7;

sbit DataO=P1^6;

#define SD_Disable() CS=1 //片选关

#define SD_Enable() CS=0 //片选开

unsigned char SPI_TransferByte(unsigned char val) {

unsigned char BitCounter;

for(BitCounter=8; BiCounter!=0; BitCounter--) { CLK=0;

DataI=0; // write

if(val&0x80) DataI=1;

val<<=1;

CLK=1;

if(DataO)val|=1; // read

}

CLK=0;

return val;

}

sbit CLK= P1^5;

sbit DataI=P1^7;

sbit DataO=P1^6;

#define SD_Disable() CS=1 //片选关

#define SD_Enable() CS=0 //片选开

unsigned char SPI_TransferByte(unsigned char val) {

unsigned char BitCounter;

for(BitCounter=8; BiCounter!=0; BitCounter--) { CLK=0;

DataI=0; // write

if(val&0x80) DataI=1;

val<<=1;

CLK=1;

if(DataO)val|=1; // read

}

CLK=0;

return val;

}

sbit CLK= P1^5;

sbit DataI=P1^7;