⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.c

📁 51单片机模拟spi串行接口程序
💻 C
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -