请问下面这几个函数,为什么不能出正确结果?
void At24c02_start(void)
{At24c02_date=1;
At24c02_clk=1;
Delay(3);
At24c02_date=0;
Delay(3);
At24c02_clk=0;
}
void At24c02_stop(void)
{At24c02_date=0;
At24c02_clk=1;
Delay(3);
At24c02_date=1;
Delay(3);
At24c02_date=0;
At24c02_clk=0;
}
bit At24c02_check_ack(void)
{At24c02_date=1;
At24c02_clk=1;
Delay(3);
}
bit At24c02_send_ack(void)
{At24c02_date=0;
At24c02_clk=1;
Delay(3);
At24c02_clk=0;
At24c02_date=1;
}
void At24c02_write_byte(uchar dat)
{uchar i;
ACC=dat;
for(i=0;i<8;i++)
{At24c02_date=Acc7;
At24c02_clk=1;
Delay(3);
At24c02_clk=0;
ACC=ACC<<1;
}
while(At24c02_check());
At24c02_clk=0;
}
uchar At24c02_read_byte(void)
{uchar i;
for(i=0;i<8;i++)
{ACC=ACC<<1;
At24c02_date=1;
At24c02_clk=1;
Delay(3);
Acc0=At24c02_date;
At24c02_clk=0;
}
At24c02_send_ack();
return(ACC);
}
void At24c02_write(uchar address,uchar dat)
{At24c02_start();
At24c02_write_byte(0xa0);
At24c02_write_byte(address);
Delay(3);
At24c02_write_byte(dat);
At24c02_stop();
Delay(5000);
}
uchar At24c02_read(uchar address)
{uchar dat;
At24c02_start();
At24c02_write_byte(0xa0);
At24c02_write_byte(address);
At24c02_start();
At24c02_write_byte(0xa1);
dat=At24c02_read_byte();
Delay(5000);
At24c02_stop();
return(dat);
}
如果您没耐心,给出一个能实现的C写的,你自证实能用的驱动也行.谢谢(网上抄的,没证实能用的最好不要贴来)
arduino i2c EEPROM(AT24C02、AT24C08、AT24C16、AT24C32、AT24C64)驱...
EEPROM允许在不改变硬件的情况下对数据进行多次写入和读取,这使得它在存储用户配置信息、游戏进度或传感器数据等方面非常有用。ATMEL公司生产的AT24C系列EEPROM芯片(AT24C02、AT24C08、AT24C16、AT24C32、AT24C64)特别适用于这类应用。下面将解释如何使用Arduino的Wire库来驱动这些AT24C系列的EEPROM。首先,要...
STM32基础:IIC总线操作EEPROM存储模块AT24C02
在STM32的精密世界中,IIC总线以其高效和灵活,成为了驱动AT24C02 EEPROM存储模块的强大工具。这款2K存储容量、双线串行接口的AT24C02,还配备了写保护等实用特性,让我们一起深入探究其工作原理和操作技巧。首先,让我们理解IIC的精髓:这是一种全双工、串行通信接口,适用于低速、低功耗的设备连接。而AT24C...
谁知道AT24C02的中文资料,在单片机中是如何被利用的,他的功能是什么呢...
AT24C02是美国 ATMEL 公司的低功耗 CMOS 串行 EEPROM,它是内含256×8 位存储空间,具有工作电压宽(2.5~5.5V) 、擦写次数多(大于10000次) 、写入速 度快(小于10ms)等特点。AT24C02中带有片内寻址寄存器。每写入或读出一个数 据字节后,该地址寄存器自动加1,以实现对下一个存储单元的操作。...
既然51单片机有了存储的作用,那AT24C02行使EEPROM的作用是不是多余了...
现在很多单片机内置EEPROM,包括增强型51单片机,这为芯片的选型提供了便利。估计,单片机外挂EEPROM应用将日渐减少。
at24c02是什么
AT24C02是Ateml公司的2KB的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8 脚的DIP 封装,使用方便。简而言之,AT24C02是一个在突然掉电的情况下存储数据的芯片,即掉电存储...
【STM32Cube_13】使用硬件I2C读写EEPROM(AT24C02)
编写EEPROM驱动程序,确定IIC器件地址为0xA2(读地址)和0xA3(写地址)。根据AT24C02的数据手册,编写相关的宏定义和底层函数。实现任意地址写单个字节和读单个字节的函数。使用单个函数连续写入多个字节会导致数据覆盖同一页面,需要编写写一页的格式。连续读取多个字节不受限制,直接读取即可。测试字节读写...
STM32CubeMX学习笔记(9)——I2C接口使用(读写EEPROM AT24C02)
开发板中的 EEPROM 芯片型号:AT24C02。AT24C 系列为美国 ATMEL 公司推出的串行 COMS 型 EEPROM。芯片型号后两位表示芯片容量,例如 ATC24C02 为 2K。引脚图中 A0、A1、A2 为器件地址引脚,GND为地,VCC为正电源,WP为写保护,SCL为串行时钟线,SDA为串行数据线。 EEPROM 芯片中 WP 引脚具有写保护功能,当该引脚电平...
51单片机中不用锁存器怎么显示动态数码管
AT24C02是EEPROM芯片,与数码管毫无关系。要组成动态显示电路,可以不用锁存器,是数码管驱动电路是必须用的。如果,要是仿真,数码管的段控和位控是可以直接用单片机引脚的,不用锁存器,也不用驱动,真的可以做到不用74芯片,如下仿真图。但是,要是做实物,可以不用锁存器,但驱动必须用,不用74...
【蓝桥杯单片机】PCF8591和24C02综合应用-智能照明自动控制器_百度知 ...
AT24C02是2kBit的串行EEPROM存储器,包含256字节。具有8字节的页写缓冲器。其容量为2kBit,地址分为写地址和读地址,写地址为0xa0,读地址为0xa1。芯片寻址范围为00~FF,共256个寻址单位。AT24C02的读写操作分为写操作和读操作。写操作实现数据的写入,读操作则用于随机读取数据。编写AT24C02的读写模块...
单片机如何读取存储IC的代码
AT24C02作为一个EEPROM,用来存储一些数据 比如:掉电后,可以把掉电前的数据缓存到AT24C02 而AT24C02和单片机通讯的话一般使用的是II2C总线~~~你要读取的东西你可以通过II2C总线配置后进入里面读写数据!!学单片机,AT24C02应该是必须会使得 因为比较简单 相关II2C总线只是,相信你只要百度一下,一定会有你...