51单片机学习笔记,模拟iic总线连续读写24c02存储器
AT24C02A, 2K SERIAL EEPROM:
Internally organized with 32 pages of 8 bytes each,
the 2K requires an 8-bit data word address for random word addressing.
24c02有32个页,每页8字节,本帖中不讨论页写的方式
-------------------------------
?
?
AT24C02内部设有一个8位控制寄存器,其每一位的含义如下:
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
?1????? 0?????1??? 0????A2? ?A1???A0? R/W
其中前4位数据是芯片固定的标识,
A2/A1/A0用于选择总线上待访问的I2C器件,R/W=1读操作,R/W=0写操作;
I2C总线上最多可以扩展8片同样的2K容量EEPROM存储器,
或者是4片4Kb的EEPROM,
或者是2片容量为8Kb的EEPROM存储器。
或者是1片容量为16Kb的EEPROM存储器(此时硬件就固定了,因为A2/A1/A0已经被P2P1P0占用),
如果扩展8片2K以内容量的EEPROM存储器,每片存储器将对应一个地址,
我们的实验板上的AT24C02的A2/A1/A0引脚全部接地,
所以在实验中读写控制字分别为:0xa1/0xa0
?
主芯片stc89c52rc,晶振11.0592M
?
my51.h头文件中主要用到#include <intrins.h>typedef unsigned char uchar ;void delayms(uint16 ms) //软延时函数{uint16 i,j;for(i=ms;i>0;i--){ for(j=113;j>0;j--) {}}}
??
?
?