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

📄 i2c.c

📁 多个单片机之间的I2C通讯的源代码
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char   
#define uint unsigned int  
sbit scl=P2^0;
sbit dat=P2^1;
void delay()
{; ;}
void chushihua()
{
	dat=1;
	delay();
	scl=1;
	delay();
		
}

void kaishi()
{
     
	dat=1;
	delay();
	scl=1;
	delay();
	dat=0;
	delay();
}
void jieshu()
{
	
	dat=0;
	delay();
	scl=1;
	delay();
	dat=1;
	delay();
}
void write(uchar x)
{
	uchar i,j ;
	i=x;
	
	for(j=0;j<8;j++)
	{   
	    i=i<<1;
        scl=0;
	    delay();
		dat=CY;
		delay();	
		scl=1;
		delay();
		 
	}
    scl=0;
	delay();
	dat=1;
	delay();
}
uchar read( )
{
	uchar m,n;
	scl=0;
	delay();
	dat=1;
	delay();
	for(m=0;m<8;m++)
	{   
		scl=1;
		delay();
		n=(n<<1)|dat;
		
		scl=0;
		delay();
 
	}
	return n;
}
void xiangying()
{
	uchar b=0 ;
	scl=1;
	delay();
	while((dat==1)&&(b<200))
		b++;
	scl=0;
	delay();
}
void fasong(uchar q,uchar l,uchar c)
{
	kaishi();
	write(q);
	xiangying();
	write(l);
	xiangying();
	write(c);
	xiangying();
	jieshu(); 
}
void jieshou(uchar w,uchar g)
{
        kaishi();
		write(w);
		xiangying();
		write(g);
		xiangying();
        kaishi();
		write(++w);
		xiangying(); 
		P0=read( );
	    jieshu();	
}

 
  
void delay1(uint p)
{
	uint e,f;
	for(e=p;e>0;e--)
		for(f=300;f>0;f--);
}
void main()
{	
	
    chushihua();
    fasong(0xa0,23,1);
    fasong(0xa2,23,2);
	fasong(0xa4,23,3);
	fasong(0xa6,23,4);
    delay1(200);
	jieshou(0xa0,23);
    delay1(200);
	jieshou(0xa2,23);
	delay1(200);
	jieshou(0xa4,23);
	delay1(200);
	jieshou(0xa6,23);
		  
	while(1);
}

⌨️ 快捷键说明

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