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

📄 24c02.txt

📁 24c04详细使用说明
💻 TXT
字号:
/***********24c04**********************/
sbit  SDA=P0^2;
sbit  SCL=P0^3;
/********24c04********************/
void i2c_start(void)      //发送开始信号    //参照时序图
{								
       SDA = 1;
       SCL = 1;
       SDA = 0;
       SCL = 0;
}       
void i2c_stop(void)	        //发送结束信号  参照时序图
{
       SDA = 0;
       SCL = 1; 
       SDA = 1;
}     
bit    i2c_ack(void)         //发送接收确认信号
{
       bit    ack;
       SDA = 1;
       SCL = 1;
       if     (SDA==1)
           ack = 1;           //用于判断接收的应答信号是否正确
       else
           ack = 0;
       SCL = 0;
       return  (ack);
}
void i2c_send8bit(unsigned char b)	//送八位数据  采用判断的方法 
{
       unsigned  char a;
       for(a=0;a<8;a++)
              {
              if ((b<<a)&0x80) 
              SDA = 1;
              else 
              SDA = 0;
              SCL = 1;
              SCL = 0;
              }
}
unsigned char i2c_receive8bit(void) //接收八位数据  返回值为接受的数据
{
       unsigned  char a;
       unsigned  char b=0;
       for(a=0;a<8;a++)
              {
                  SCL = 1;
                  b=b<<1;
                  if (SDA==1)
                  b=b|0x01;         //按位或
                  SCL = 0;
              }
       return (b);
}
void i2c_write(unsigned char Address,unsigned char Data)
{
        do{
             i2c_start();          //开总线
             i2c_send8bit(0xA0);   //发送器件地址
          }while(i2c_ack());	  //等待返回数据
       i2c_send8bit(Address);	  //发送内部地址
       i2c_ack();				  //等待返回应答
       i2c_send8bit(Data);		  //发送数据
       i2c_ack();				  //等待应答
       i2c_stop();				  //停止发送
}
unsigned char i2c_read(unsigned char Address)
{
       unsigned char c;
      do{
           i2c_start();	          //开总线
           i2c_send8bit(0xa0);	  //发送器件地址
        }while(i2c_ack());         //=1,表示无确认,再次发送
       i2c_send8bit(Address);	  //发送内部地址
       i2c_ack();				   //应答
       do{
           i2c_start();
           i2c_send8bit(0xa1);
       }while(i2c_ack());
       c=i2c_receive8bit();
       i2c_ack();
       i2c_stop();
       return(c);
}
void save_data(void)           //功能用于把数据保存到24c04中 只要运行就保存数据
{
     unsigned char i;
	 unsigned char y;
	 unsigned char t;
	 y=0x00;
	 t=0;
       for(i=0;i<8;i++)	   //把时间的八个字节发到24c04中
       {
	     i2c_write(y,str1[t]);
	     t++;
	     y++;
       }	            
	 i2c_write(0x08,turnsjz(h));   //把温度的数据发送到24c04中 发送的为温度显示值 bcd码形式  进行了温度的转换
	 i2c_write(0x09,turnsjz(n));
	 i2c_write(0x0a,turnsjz(v));
}
void  extract_data(void)     //取数据从24c04中
{
  unsigned char l;
  unsigned char i;
  i=0x00;
     for(l=0;l<8;l++)
     {
      str1[i]=i2c_read(i);
      i++;
     }
  h=turnsjz(i2c_read(0x08));
  n=turnsjz(i2c_read(0x09));
  v=turnsjz(i2c_read(0x0a));  //取出数据 以下进行显示出数据
  xianshi(27,h); 
  xianshi(28,n);
  xianshi(30,v);	
}

⌨️ 快捷键说明

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