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

📄 iic总线.c

📁 iic总线的单片机C程序
💻 C
字号:
 #include<reg52.h>
 #include<intrins.h>
 #define  unchar  unsigned char
 sbit  SCL=P1^5;
 sbit  SDA=P1^6;  
 sbit  lag=P1^4;
 sbit  dula=P2^0;
 sbit   wela=P2^1;

  void  delay1 (int a )
  {	int i,j; 
    for(i=0;i<a;i++)
      for(j=0;j<100;j++);
  }	 
   void	 delay() 
    { unchar i=3;
	  while(i--);}
   void  init()
   { SCL=1;
     delay();
	 SDA=1;
     delay();
   }
  void start()
   { 
	 SCL=1;
	 delay();
	 SDA=0;
	 delay();
	 SCL=0;
	 delay();
   }
   void stop()
   { 
     SDA=0;
     delay();
	 SCL=1;
   	 delay();
	 SDA=1;
	 delay();
   }
   void response()
	{   int i;
	   	SCL=1;
		delay();
	   while(SDA==1&&i<255)
	      i++;
        SCL=0;
		delay();
	    
	}
   void write_byte(char  date)
  {	unchar  i, temp;
	   SCL=0;
	   delay();
      temp=date;
       for (i=0;i<8;i++)
	   {  temp=temp<<1;
	      SCL=0;
		  delay();
	      SDA=CY;
		  SCL=1;
		  delay();
		  SCL=0;
		  delay();
	 }
	     
	    SDA=1;
	    delay();

	 }
     unchar read_byte()
    { unchar  i,temp;
	    SCL=0;
		delay(); 
	    SDA=1;
	    delay();
	  for(i=0;i++;i<8)
	    { SCL=1;
		  delay();
		  temp=temp<<1;
		  temp=temp|SDA;
		  SCL=0;
		  delay();
		  }
       return (temp);
    }
	void   write_add(unchar add,unchar  date)
	{start();
    write_byte(0xa0);
	response();
	write_byte(add);  
	response();
	write_byte(date);
	response();
	stop();
	 }
  unchar read_add(unchar add)
   {  unchar a;
     start();
	write_byte(0xa0);  
	response();
	write_byte(add);
	response();

	start();
	write_byte(0xa1);
	response();
	a=read_byte();
	stop();
	return  a;
	 }
 main()
 {	lag=0;
    init();
    write_add(0x80,0x00);
	delay1(100); 
	wela=1;
	P0=read_add(0x80);
	wela=0;
	while(1);
	} 


⌨️ 快捷键说明

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