微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 串行E2PROMAT 24C512在单片机中应用

串行E2PROMAT 24C512在单片机中应用

时间:03-21 来源:互联网 点击:

随机读为例介绍读操作过程。

随机读操作允许主器件对存储器的任意字节进行读操作。操作过程为主器件首先发送起始信号,从器件地址和欲读取字节的地址执行1个伪写操作,此时R/W位应置0,在AT24C512应答后,主器件重新发送起始信号和从器件地址,此时R/W位应置1,AT24C512响应并发送应答信号,然后输出所要求的1个 8位字节数据。主器件不发送应答信号,但产生1个停止信号。字节读操作时序如图3所示。

4应用

AT24C512与AT89C2051单片机的硬件连接电路如图4所示。这里使用了2个AT24C512组成寻址空间为128K字节的E2PROM存储器电路。其中U2的器件地址为A0H,存储地址空间为0000-0FFFFH;U3的器件地址为A2H,存储地址空间为0000-0FFFFH。


图3 字节读操作时序

由于AT89C2051不具有I2C总线,因此采用P1.0和P1.1口线来模拟I2C总线,AT24C512的SDA和SCL为开漏输出,故接入10kΩ的上拉电阻器。下面是与上述电路配套的E2PROM读写程序:
;内存数据定义
BitCnt DATA 30H;读/写数据位数计数器
ByteCnt DATA 31H;读/写数据字节数计数器
SlvAddr DATA 32H;E2PROM器件地址
SubAdrl DATA 33H;存储单元地址高8位
SubAdr2 DATA 34H;存储单元地址低8位
ReadDat DATA 50H;读操作数据缓冲区
WriteDat DATA 40H;写操作数据缓冲区
;端口位定义
SDA BIT P1.0;模拟I2C数据传送位
SCL BIT P1.1;模拟I2C时钟控制位
ACK BIT 20H;读非应答标志
;主程序

MAIN: MOV SP #60H;设堆栈
Write: MOV SlvAdr, #A0H;选择1个器件地址
MOV ByteCnt, #08H;设写入数据长度为8字节
MOV SubAdr1, #00H;设写入单元首址为0020H
MOV SubAdr2, #20H;
LCALL WriteData ; 写数据
……
Read: MOV Slvadr, #A0H;选择1个器件地址
MOV Bytecnt, #08H;设读出数据长度为8字节
MOV SubAdr1, #00H;设读出单元
MOV SubAdr2, #20H;首址为0020H
LCALL ReadData; 读数据
……
WriteData:LCALL Start; I2C总线起始条件
MOV A,SlvAdr; 取器件地址
LCALL writeByte; 发送器件地址
MOV A,SubAdr1
LCALL writeByte;发送高8位地址
MOV A,SubAdr2
LCALLwriteByte;发送低8位地址
MOVR0,#WriteDat;取写入数据的首地址
Next:MOVA,@R0
LCALLwriteByte;写入1字节数据
LNCR0;取下1个数据
DJNZByteCnt,Next;重复操作直到写完全部数据
LCALLStop;发送I2C总线停止条件
LCALLDL10ms;延时10ms等待E2PROM内部数据
;写完
RET
;读数据子程序
ReadData:LCALLStart
MOVA,SlvAdr
LCALLWriteByte
MOVA,Subadr1
LCALLWriteByte
MOVA,Subadr2
LCALLWriteByte
LCALLStart;重复发送I2C总线起始条件
MOVA,Slvadr
SETBACC.0;R/W位置1
LCALLWriteByte
CLRACK;请读非应答标志
MOVR0,#RdadData;读缓冲区首址
DJNZByteCnt,Next1
SJMPLast
Next1:LCALLReadByte;接收1个字节数据
MOV@R0,A;接收数据送缓冲区
INCR0
DJNZByteCnt,Next1;重复接收
Last:SETBACK;接收最后1个字节数据
ACALLReadByte
MOV#R0,A
LCALLStop
RET

上面给出读写操作主程序、页面写入子程序及其多字节读子程序。受篇幅限制,部分子程序没有给出,读者可根据AT24C512的操作时序自行编制或参阅相关文献。

5结束语

由AT24C512与AT89C2051等非总线单片机构成的数据采集存储系统具有体积小、成本低、可靠性高的特点,因而具有很高的应用价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top