I2C总线at24c02芯片使用说明
密码储存电路
密码储存电路采用I2C总线at24c02存储芯片存放密码,可实现断电密码不消失,at24c02存储芯片可长期存储信息,可上百万次以上重新擦写(5);
scl=1;
nopp(5);
sda=0;
nopp(5);
}
void stop() //停止信号
{ sda=0;
nopp(5);
scl=1;
nopp(5);
sda=1;
nopp(5);
}
void response() //应答信号
{ uchar i;
scl=1;
nopp(5);
while((sda==1)&&(i<255))i++;
scl=0;
nopp(5);
}
void write_byte(uchar date) //写一个字节
{ uchar i,temp;
temp=date;
for(i=0;i<8;i++)
{ scl=0;
nopp(5);
temp<<=1;
sda=CY;
nopp(5);
scl=1;
nopp(5);
}
scl=0;
nopp(5);
sda=1;
nopp(5);
}
uchar read_byte() //读一个字节
{ uint i,j;
scl=0;
nopp(5);
sda=1;
nopp(5);
for(i=0;i<8;i++) //循环8次读出一个字节数据
{ scl=1;
nopp(5);
j=(j<<1)|sda;
scl=0;
nopp(5);
}
return j;
}
void at24_write(uchar address,uchar date)
{ start(); //初始信号
write_byte(0xa0); //写入芯片地址0XA0
response(); //应答信号
write_byte(address); //写入芯片内部寄存器地址ADDRESS
response(); //应答信号
write_byte(date); // 写入数据
response(); //应答信号
stop(); // 停止信号
}
uchar at24_read(uchar address)
{ uchar date;
start(); // 初始信号
write_byte(0xa0); // 写入芯片地址0XA0
response(); // 应答信号
write_byte(address); // 写入芯片内部寄存器地址ADDRESS
response(); // 应答信号
start(); // 初始信号
write_byte(0xa1); // 初始信号
response(); // 写入芯片地址0XA1(读)
date=read_byte(); // 读出数据
stop(); // 停止信号
return date; // 返回读出值
}
void main()
{ uchar tt, i ,r
sda=1;
scl=1;
at24_write(8,9);//向at24c02的地址8写入数
I2C总线at24c02芯片使用说明 来自淘豆网m.daumloan.com转载请标明出处.