密码锁修改密码后,需要自我保存,所以这就需要一个小型存储器来存储密码,而at24c01容量足够存储这么少的东西,而且价格便宜,使用的i2c通讯,所以采用。
需要注意的是,写入数据需要保持时序一致(5ms一次)
i2c.c
#include "i2c.h"
void Delay10us()
{
unsigned char a,b;
for(b=1;b>0;b--)
for(a=2;a>0;a--);
}
//SCL线为高电平期间.SDA线由高电平向低电平的变化表示起始信号
void I2cStart()
{
SDA=1;
Delay10us();
SCL=1;
Delay10us();//先保持数据线和时钟线高电平一段时间
SDA=0; // 数据线向低电平跳变
Delay10us();
SCL=0; //拉低时钟线
Delay10us();
}
//SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号
void I2cStop()
{
SDA=0