注:本人博文整理至CSDN以方便查阅,源博文位于EDN
#include "24c02.h"
sbit SDA="P1"^3; //I2C总线数据
sbit SCL="P1"^2; //I2C总线时钟
void delay(void) //延时子程序
{
unsigned char i;
for(i=0;i<1;i++);
}
//************************************** 将一个字节保存到EEROM中 *****************************************
unsigned char Write_a_EEPROM_data(unsigned char device_addr,unsigned char data_addr,unsigned char w_data)
{
unsigned char i,Device_Addr;
//if(NO_2401)return 0xFF;
delay();
SDA=0; //产生一个起始位
delay();
Device_Addr=device_addr; //EEROM的地址暂存
for(i=0;i<7;i++) //输出设备地址
{
SCL=0;
delay();
SDA=device_addr&0x80; //SDA上输出一位数据,高位在前
device_addr<<=1;
delay();
SCL=1;