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

📄 24c16.c

📁 C51源程序//读写EEPROM
💻 C
字号:
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit SCL=P1^1;
sbit SDA=P1^2;
void dly (unsigned char CNT)
  {unsigned char i;
   while (CNT--!=0)
   for (i=100;i!=0;i--);
  }

  void wait(void)
{
  unsigned char i=50;
  for(i=0;i<8;i++);
}
void start_bit(void)
{
SCL=1;wait();
SDA=0;wait();
SCL=0;wait();
}
void stop_bit(void)
{
SDA=0;wait();
SCL=1;wait();
SDA=1;wait();
SCL=0;wait();
}
void write_8bit(uchar ch)
{
uchar i=8;
for(i=0;i<8;i++)
{if(ch & 0x80)
      SDA=1;
     else
      SDA=0;
     ch=(ch<<1);
     SCL = 1;
     wait();
     SCL=0;
     wait();
   }
   SDA=1;
   wait();
   SCL = 1 ;
   wait();
   SCL=0;
   wait();
}
uchar rd8bit()
{uchar i=8,j;
 for(i=0;i<8;i++)
{
j<<=1;
SCL=1;wait();
 if(SDA)
     j |= 1;
    SCL=0;
     wait();
}
SDA=1;
   wait();
return(j);
}
void write24c16(uint address,uchar ddata)
{
start_bit();
write_8bit(0xA0);
write_8bit(address);
write_8bit(ddata);
stop_bit();
}
uchar read24c16(uint address)
{
uchar rdata;
start_bit();
write_8bit(0xA0);
write_8bit(address);
start_bit();
write_8bit(0xA1);
rdata=rd8bit();
stop_bit();
return(rdata);
}
//----------------------------------
void main(void)
{
uchar i,ad1=10,dt1=78;
P1=0xff;
  write24c16(ad1,dt1);
  dly(100);
   i=read24c16(ad1);

}

⌨️ 快捷键说明

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