串行EEPROM AT24CXX芯片资料

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

串行EEPROM AT24CXX芯片资料

AT24CXX是美国ATMEL公司的低功耗CMOS串行EEPROM,典型的型号有

AT24C01A/02/04/08/16等5种,它们的存储容量分别是

1024/2048/4096/8192/16384位;也就是128/256/512/1024/2048字节;使用电压级别有5V,2.7V,2.5V,1.8V;本文主要介绍常用的AT24C02即256字节存储器的使用;它具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。

外行如图:

AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址(实验板中直接接地只有一块器件);第8脚和第4脚分别为正、负电源。第5脚SDA

为串行数据输入/输出,数据通过这条双向I2C总线串行传送,SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚为WP写保护端,接地时允许芯片执行一般的读写操作。接电源端时不允许对器件写。

24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。

;这是将0100H地址中以下的8个数据写到24C02的01H为首址单元中去的汇编程序可直接在实验板上实验。

ORG 0000H

SCL BIT P3.7;定义24C02的串行时钟线

SDA BIT P3.6;定义24C02的串行数据线

LJMP START

START:LCALL STAR;调用

MOV R2,#08H;一个数据有8位

MOV DPTR,#0100H;定义源数据的位置LOOP:MOV A,#00H

MOVC A,@A+DPTR

LCALL SDATA

LCALL ACK

JC LOOP

INC DPTR

DJNZ R2,LOOP

LCALL STOP;调用停止子程序STAR:SETB SDA

SETB SCL

NOP

NOP

NOP

NOP

CLR SDA

NOP

NOP

NOP

NOP

CLR SCL

RET

SDATA:MOV R0,#08H

LOOP0:RLC A

MOV SDA,C

NOP

NOP

SETB SCL

NOP

NOP

NOP

CLR SCL

DJNZ R0,LOOP0 RET

ACK:SETB SDA NOP

NOP

SETB SCL NOP

NOP

NOP

NOP

MOV C,SDA CLR SCL

RET

STOP:CLR SDA NOP

NOP

NOP

NOP

SETB SCL NOP

NOP

NOP

NOP

SETB SDA

NOP

NOP

NOP

RET

ORG 0100H

DB 0A0H,10H,01H,02H,03H,04H,05H,06H

END

读写子程序如下:

;写串行E2PROM子程序XEPR

; R3=10100000(命令1010+器件3位地址+读/写。器件地址一个芯片,是000); (R4)=片内字节地址

; (R1)=欲写数据存放地址指针

; (R7)=连续写字节数n

XEPR: MOV P3,#0FFH

CLR SDA ;发开始信号

MOV A,R3 ;送器件地址

ACALL SUBS

MOV A,R4 ;送片内字节地址

ACALL SUBS

AIN: MOV A,@R1

ACALL SUBS ;调发送单字节子程序INC R1

DJNZ R7,AIN;连续写n个字节

CLR SDA ;SDA置0, 准备送停止信号

ACALL DELAY ;延时以满足传输速率要求

SETB SCL ;发停止信号

ACALL DELAY

SETB SDA

RET

SUBS: MOV R0,#08H ;发送单字节子程序

LOOP: CLR SCL

RLC A

MOV SDA,C

NOP

SETB SCL

ACALL DELAY

DJNZ R0,LOOP ;循环8次送8个bit

CLR SCL

ACALL DELAY

SETB SCL

REP: MOV C,SDA

JC REP ;判应答到否,未到则等待

CLR SCL

RET

DELAY: NOP

NOP

RET

;读串行E2PROM子程序DEPR

;(R1)=欲读数据存放地址指针

;; R3=10100001(命令1010+器件3位地址+读/写。器件地址一个芯片,是000);(R4)=片内字节地址

;(R7)=连续读字节数

DEPR: MOV P3,#0FFH

CLR SDA ;发开始信号

MOV A,R3 ;送器件地址

ACALL SUBS ;调发送单字节子程序

相关文档
最新文档