资源描述:
《串行eeprom at24cxx芯片资料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、串行EEPROMAT24CXX芯片资料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脚是三条地址
2、线,用于确定芯片的硬件地址(实验板中直接接地只有一块器件);第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚为WP写保护端,接地时允许芯片执行一般的读写操作。接电源端时不允许对器件写。 24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。;这是将0100H地址中以下的8个数据写到24C02的01H
3、为首址单元中去的汇编程序可直接在实验板上实验。ORG0000HSCLBITP3.7;定义24C02的串行时钟线SDABITP3.6;定义24C02的串行数据线LJMPSTARTSTART:LCALLSTAR;调用MOVR2,#08H;一个数据有8位MOVDPTR,#0100H;定义源数据的位置LOOP:MOVA,#00HMOVCA,@A+DPTRLCALLSDATALCALLACKJCLOOPINCDPTRDJNZR2,LOOPLCALLSTOP;调用停止子程序STAR:SETBSDASETBSCLNOPNOPNOPNOPCLRSDANOPNOPNOPNOP
4、CLRSCLRETSDATA:MOVR0,#08HLOOP0:RLCAMOVSDA,CNOPNOPSETBSCLNOPNOPNOPNOPCLRSCLDJNZR0,LOOP0RETACK:SETBSDANOPNOPSETBSCLNOPNOPNOPNOPMOVC,SDACLRSCLRETSTOP:CLRSDANOPNOPNOPNOPSETBSCLNOPNOPNOPNOPSETBSDANOPNOPNOPNOPRETORG0100HDB0A0H,10H,01H,02H,03H,04H,05H,06HEND 读写子程序如下:;写串行E2PROM子程序XEPR;R3=
5、10100000(命令1010+器件3位地址+读/写。器件地址一个芯片,是000);(R4)=片内字节地址;(R1)=欲写数据存放地址指针;(R7)=连续写字节数nXEPR:MOV P3,#0FFH CLR SDA ;发开始信号 MOV A,R3 ;送器件地址 ACALL SUBS MOV A,R4 ;送片内字节地址 ACALL SUBSAIN:MOV A,@R1 ACALLSUBS ;调发送单字节子程序INC R1 DJNZ R7,AIN;连续写n个字节 CLR SDA ;SDA置0,准备送停止信号 ACALL DEL
6、AY;延时以满足传输速率要求 SETB SCL ;发停止信号 ACALL DELAY SETB SDA RETSUBS:MOV R0,#08H;发送单字节子程序LOOP:CLR SCL RLC A MOV SDA,C NOP SETB SCL ACALLDELAY DJNZ R0,LOOP;循环8次送8个bit CLR SCL ACALLDELAY SETB SCLREP:MOV C,SDA JC REP ;判应答到否,未到则等待 CLR SCL RETDELAY:NOP NOP RET ;读串行E2PROM子程
7、序DEPR;(R1)=欲读数据存放地址指针;;R3=10100001(命令1010+器件3位地址+读/写。器件地址一个芯片,是000);(R4)=片内字节地址;(R7)=连续读字节数DEPR:MOV P3,#0FFH CLR SDA ;发开始信号 MOV A,R3 ;送器件地址 ACALLSUBS ;调发送单字节子程序 MOV A,R4 ;送片内字节地址 ACALLSUBS MOV P3,#0FFH CLR PSDA ;再发开始信号 MOV A,R3 SETB ACC.0 ;发读命令 ACALLSUBSMORE:ACA
8、LLSUBR MOV @R1,A INC R1