小弟求 24c64的程序,汇编的,那位先生可以指教阿,小弟先谢谢了

小弟求 24c64的程序,汇编的,那位先生可以指教阿,小弟先谢谢了,第1张

4.串行E2PROM读写程序

24C64为I2C总线的E2PROM。SCL为400kHz时钟线,SDA为双向数据线,A2、A1、A0三位为片选地址,即I2C总线上最多可并联8个串行E2PROM芯片。对E2PROM的 *** 作方式由读写控制命令字决定,如图4所示。其中"1010"为4位读写控制码,R/W为读写控制位:"0"为写 *** 作,"1"为读 *** 作。所以结合图1可知A2H为写控制命令字,A3H为读控制命令字。

对存储器写 *** 作,首先,单片机向24C64发一个START命令,产生开始条件。然后,发写命令控制字(如A2H)。当24C64接到命令后,进入一个写周期,再由单片机发送存储地址,即确定数据写入到存储器的哪个地址,随后,单片机将要存储的数据送入到SDA数据线上。写周期结束时,单片机再发一停止位(STOP)。

对存储器读 *** 作,首先,单片机向24C64发一个START命令,产生开始条件。然后发写命令控制字(如A2H)。当24C64接到命令后,进入一个写周期,再由单片机发送存储地址。存储地址发送成功后,单片机又向24C64发一个START命令,产生开始条件,然后发读命令控制字(A3H)。当24C64接到命令后,进入一个读周期,单片机从SDA数据线上读出指定存储地址中的数据。读周期结束时,单片机再发一停止位(STOP)。(程序略)

值得注意的是,对存储器 *** 作时,每读写一个字节,单片机必须送一个应答位(ACK),释放一下SDA数据线,以便存储器能继续接收数据。

mcu_address是指你要传送的数据在单片机中的存放地址,比如一个数组,它就是指这个数组的首地址;at24c64_add是指你传送过来的数据在EEPROM中的存放地址,可以是0x0000~0x0fff中的任意地址;count就是指你传送过去的数据个数。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11152178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存