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

📄 i2c.c

📁 采用普通单片机控制的电桥测试仪
💻 C
字号:
#define  _I2C_
#include "..\Inc\Include.h"



void I_start(void)
{  SDA1; SCLK1; SDA0;      SCLK0;}

void I_stop(void)
{  SDA0;   SCLK1;  SDA1;   SCLK0; }

void I_ack(void)
{ SDA0;    SCLK1;  SCLK0;  SDA1;  }

void N_ack(void)
{ SDA1;    SCLK1;  SCLK0;  SDA0;  }


void I_send(unsigned char m)
{
unsigned char  i=8;
do{
SCLK0;

if(m&0x80)    { SDA1; }
 else         { SDA0; }

SCLK1;
m=m<<1;
i--;
}while(i);
SCLK0;
}

unsigned char I_receive(void)
{
unsigned char  x=0,i=8;

SDA1;
do{
SCLK0;

SCLK1;

if(SDA)              
x=x|0x01;
if(i>1)
x=x<<1;
i--;
}while(i);
SCLK0;
return x;
}

unsigned char IIRD(unsigned char sla,unsigned char x)
{  unsigned char kk;  
  I_start();
  I_send(sla);
  I_ack();
  I_send(x);
  I_ack();
  I_start();
  I_send(sla+1);
  I_ack();
  kk=I_receive();
  N_ack();
  I_stop();
  II_delay();
  return(kk);

}

void IIWR(unsigned char sla,unsigned char x,unsigned char y)
{
//  IIC_biao=0;
    
  I_start();
  I_send(sla);
  I_ack();
  I_send(x);
  I_ack();
  I_send(y);
  I_ack();
  I_stop();
  II_delay();    //连续写必须延时间
  II_delay();
}
unsigned char II3RD(unsigned char sla,unsigned  int  dizi)
{ 
	unsigned char  kk,m,n;
	
	n=(unsigned char)((dizi&0xff00)>>8);
  	m=(unsigned char)(dizi&0x00ff);
  I_start();
  I_send(sla);
  I_ack();
  I_send(n);
  I_ack();
  I_send(m);
  I_ack();
  I_start(); 
  I_send(sla+1);
  I_ack();
  kk=I_receive();
  N_ack();
  I_stop();
  II_delay();
  return(kk); 
}
void   II3WR(unsigned char sla,unsigned   int   dizi,unsigned char shuju)
 {
  unsigned char  m,n;
  n=(unsigned char)((dizi&0xff00)>>8);
  m=(unsigned char)(dizi&0x00ff);
  I_start();
  I_send(sla);
  I_ack();
  I_send(n); 
  I_ack();
  I_send(m);
  I_ack();
  I_send(shuju);
  I_ack();
  I_stop(); 
  II_delay();
  II_delay();
  II_delay();
  II_delay();
  II_delay();
  }

void II_delay(void)
  {
    uint  i=0;
    for(i=0;i<150;i++)       /* 必须大于450    否则数据不能保存 */
    ;

 }

⌨️ 快捷键说明

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