您的当前位置:首页正文

51单片机模拟spi串行接口程序

2020-02-10 来源:步旅网


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;

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;

}

因篇幅问题不能全部显示,请点此查看更多更全内容