spi.c

来自「51单片机模拟spi串行接口程序」· C语言 代码 · 共 337 行

C
337
字号
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;

}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?