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

📄 从机.c

📁 SPI模拟通信从机,用于双机进行通行
💻 C
字号:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned char
uchar shou;

sbit mi=P1^0;	  //从机接收主机发送接口
sbit mo=P1^1;	  //从机发送主机接收接口
sbit sclk=P1^2;	  //主从机时钟同步时钟信号
sbit ss=P1^3;	  //从机选择控制位



/**********简单的延时函数***************/
void delay(uchar z)
{
	uchar a;
	for(;z>0;z--)
		for(a=5;a>0;a--);

}

/**********从机接收数据并发送数据函数************/
void shoufa(uchar date)
{

	uchar a,b;
	while(ss==0)	//检测是否有数据的传输
	{
	/*确认主机要发送数据后进行接收****/
	while(sclk==1);  //检测同步时钟信号
		 				  //确定时钟信号置低
	for(a=0;a<8;a++)
	{
		 while(sclk==0)	//时钟置低,准备发数据
		{	 	

			delay(0);   //等待数据的稳定
			b=mi;
			P2=b;
			if(b==1)
				shou|=0x01;
			while(sclk==0);	//数据接收完成一位之后等待发送数据
		}  
			
		  if(a<7)
			{  
			  shou<<=1;
			}
			
		while(sclk==1)
		{		
			date<<=1;
			mo=CY;	   //输出数据的高位
			while(sclk==1);
		}		
	}	
	}
}
/***********主程序**************/
void main()
{

	P1=0xff;
	while(1)
	{
		shoufa(0xff);
		P3=shou;
	}
	
}

⌨️ 快捷键说明

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