0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何进行AT24C02存储芯片的串行E2PROM读写

Wildesbeast 来源:网络整理 作者:佚名 2020-05-05 16:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

;这是将0600H地址中以下的8个数据写到24C02的01H为首址单元中去的汇编程序

ORG 0000H

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

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

LJMP START

START:LCALL STAR;调用

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

MOV DPTR,#0600H;定义源数据的位置

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

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

NOP

RET

ORG 0600H

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

END

读写子程序如下:

;写串行E2PROM子程序EEPW

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

; (R4)=片内字节地址

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

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

EEPW: MOVP1,#0FFH

CLRP1.0;发开始信号

MOVA,R3;送器件地址

ACALL SUBS

MOVA,R4;送片内字节地址

ACALLSUBS

AGAIN: MOVA,@R1

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

DJNZR7,AGAIN;连续写n个字节

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

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

SETB P1.1 ;发停止信号

ACALLDELAY

SETB P1.0

RET

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

LOOP: CLRP1.1

RLCA

MOVP1.0,C

NOP

SETBP1.1

ACALL DELAY

DJNZR0,LOOP ;循环8次送8个bit

CLRP1.1

ACALL DELAY

SETBP1.1

REP: MOVC,P1.0

JCREP;判应答到否,未到则等待

CLR P1.1

RET

DELAY: NOP

NOP

RET

;读串行E2PROM子程序EEPR

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

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

;(R4)=片内字节地址

;(R7)=连续读字节数

EEPR: MOVP1,#0FFH

CLRP1.0;发开始信号

MOVA,R3;送器件地址

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

MOVA,R4;送片内字节地址

ACALL SUBS

MOVP1,#0FFH

CLRP1.0;再发开始信号

MOVA,R3

SETBACC.0;发读命令

ACALL SUBS

MORE: ACALL SUBR

MOV@R1,A

INCR1

DJNZ R7,MORE

CLRP1.0

ACALL DELAY

SETB P1.1

ACALL DELAY

SETBP1.0 ;送停止信号

RET

SUBR: MOV R0,#08H ;接受单字节子程序

LOOP2: SETB P1.1

ACALL DELAY

MOVC,P1.0

RLCA

CLRP1.1

ACALL DELAY

DJNZ R0,LOOP2

CJNE R7,#01H,LOW

SETB P1.0;若是最后一个字节置A=1

AJMP SETOK

LOW: CLRP1.0;否则置A=0

SETOK: ACALL DELAY

SETB P1.1

ACALL DELAY

CLRP1.1

ACALL DELAY

SETBP1.0;应答毕,SDA置1

RET

程序中多处调用了DELAY子程序(仅两条NOP指令),这是为了满足I2C总线上数据传送速率的要求,只有当SDA数据线上的数据稳定下来之后才能进行读写(即SCL线发出正脉冲)。另外,在读最后一数据字节时,置应答信号为“1”,表示读操作即将完成。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储芯片
    +关注

    关注

    11

    文章

    997

    浏览量

    44720
  • AT24C02
    +关注

    关注

    0

    文章

    79

    浏览量

    25035
  • E2PROM
    +关注

    关注

    0

    文章

    29

    浏览量

    19170
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析 N24C02/04/08/16:高性能CMOS串行EEPROM

    推出的 N24C02/04/08/16 系列 $I^{2}C$ CMOS 串行 EEPROM,看看它们在设计中能为我们带来哪些便利和优势。
    的头像 发表于 12-05 15:12 139次阅读
    深入解析 N<b class='flag-5'>24C02</b>/04/08/16:高性能CMOS<b class='flag-5'>串行</b>EEPROM

    芯伯乐24C02/24C04/24CXX:百万次擦写非易失性存储器的解决方案

    的首选方案。无论是消费电子、工业控制还是物联网设备,都能见到它的身影。一产品概述24C02/24C04/24Cxx系列是基于IIC总线协议的串行电可擦除
    的头像 发表于 11-28 18:32 113次阅读
    芯伯乐<b class='flag-5'>24C02</b>/<b class='flag-5'>24C</b>04/<b class='flag-5'>24</b>CXX:百万次擦写非易失性<b class='flag-5'>存储</b>器的解决方案

    存储芯片(焕发生机)

    01产业链全景图02存储芯片定义存储芯片也叫半导体存储器,是电子设备里负责存数据、读数据的关键零件。半导体产品主要有四大类:分立器件、光电器件、传感器、集成电路。像
    的头像 发表于 11-17 16:35 1997次阅读
    <b class='flag-5'>存储芯片</b>(焕发生机)

    串行接口MRAM存储芯片面向工业物联网和嵌入式系统的应用

    英尚微电子所代理的Everspin xSPI串行接口MRAM存储芯片,基于最新的JEDEC xSPI标准与独有的STT-MRAM技术构建,这款串行接口MRAM存储芯片可全面替代传统SR
    的头像 发表于 11-05 15:31 200次阅读

    雷军都喊贵!存储芯片涨价风暴,手机电脑集体涨价#芯片#存储芯片#AI

    存储芯片
    jf_15747056
    发布于 :2025年10月28日 19:07:52

    C兼容串行电可擦可编程只读存储器(E²PROM)-P24C512H

        I²C兼容串行电可擦可编程只读存储器(E²PROM)-P24C512H   产品介绍  
    的头像 发表于 08-07 10:06 894次阅读
    I²<b class='flag-5'>C</b>兼容<b class='flag-5'>串行</b>电可擦可编程只读<b class='flag-5'>存储</b>器(<b class='flag-5'>E</b>²<b class='flag-5'>PROM</b>)-P<b class='flag-5'>24C</b>512H

    【沁恒CH585开发板免费试用体验】I2C 读写EEPROM (二)

    _GetFlagStatus(I2C_FLAG_BUSY) != RESET); } 主要配置I2C模式、低电平占空比、I2C寻址模式以及通信速率,最后使能I2C设备。 初始化完成后
    发表于 08-05 22:13

    半导体存储芯片核心解析

    前言:什么是烧录-义嘉泰带你深度了解IC烧录服务: https://bbs.elecfans.com/jishu_2491063_1_1.html 1. 为什么需要存储芯片? 计算机和人脑一样,需要
    发表于 06-24 09:09

    求助,关于将固件编程到连接到CYUSB3014-BZXC的EEPROM中遇到的问题求解

    固件是否已正确写入 I2C E2PROM (M24M02-DRMN6TP)。 我使用 USB 控制中心并按照以下步骤操作。 程序 -&gt;FX3 -&gt; I2C
    发表于 05-06 09:05

    基于APM32F407如何制作I2C EEPROM(AT24C02型号)的MDK-Keil下载算法

    基于APM32F407如何制作I2C EEPROM(AT24C02型号)的Keil下载算法,这样在我们下载代码时可以一键把数据烧录到EEPROM中。
    的头像 发表于 04-11 11:06 1763次阅读
    基于APM32F407如何制作I<b class='flag-5'>2C</b> EEPROM(<b class='flag-5'>AT24C02</b>型号)的MDK-Keil下载算法

    【CW32模块使用】AT24C02-EEPROM存储

    可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS
    的头像 发表于 03-29 17:26 1428次阅读
    【CW32模块使用】AT<b class='flag-5'>24C02</b>-EEPROM<b class='flag-5'>存储</b>器

    DD10-36S24E3C2 DD10-36S24E3C2

    电子发烧友网为你提供AIPULNION(AIPULNION)DD10-36S24E3C2相关产品参数、数据手册,更有DD10-36S24E3C2的引脚图、接线图、封装手册、中文资料、英文资料,DD10-36S24E3C2真值表,
    发表于 03-20 18:47
    DD10-36S<b class='flag-5'>24E3C2</b> DD10-36S<b class='flag-5'>24E3C2</b>

    DD6-05S24E3C2 DD6-05S24E3C2

    电子发烧友网为你提供AIPULNION(AIPULNION)DD6-05S24E3C2相关产品参数、数据手册,更有DD6-05S24E3C2的引脚图、接线图、封装手册、中文资料、英文资料,DD6-05S24E3C2真值表,DD6
    发表于 03-20 18:46
    DD6-05S<b class='flag-5'>24E3C2</b> DD6-05S<b class='flag-5'>24E3C2</b>

    FK6-36S24E2C3 FK6-36S24E2C3

    电子发烧友网为你提供AIPULNION(AIPULNION)FK6-36S24E2C3相关产品参数、数据手册,更有FK6-36S24E2C3的引脚图、接线图、封装手册、中文资料、英文资料,FK6-36S24E2C3真值表,FK6
    发表于 03-20 18:41
    FK6-36S<b class='flag-5'>24E2C</b>3 FK6-36S<b class='flag-5'>24E2C</b>3

    STM32F407的两个USB口能否分别实现读卡器和读U盘的功能以及硬件IIC读写AT24C02

    需求如下: 1.OTS_FS(PA 11,PA12)实现TF卡的读卡器功能, 2.OTS_HS(PB14,PB15)实现读写U盘功能 3.硬件IIC(PB8,PB9)读写AT24C02
    发表于 03-11 06:23