0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何進(jìn)行AT24C02存儲(chǔ)芯片的串行E2PROM讀寫(xiě)

Wildesbeast ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-05-05 16:03 ? 次閱讀

24C02中帶有片內(nèi)地址寄存器。每寫(xiě)入或讀出一個(gè)數(shù)據(jù)字節(jié)后,該地址寄存器自動(dòng)加1,以實(shí)現(xiàn)對(duì)下一個(gè)存儲(chǔ)單元的讀寫(xiě)。所有字節(jié)均以單一操作方式讀取。為降低總的寫(xiě)入時(shí)間,一次操作可寫(xiě)入多達(dá)8個(gè)字節(jié)的數(shù)據(jù)。

;這是將0600H地址中以下的8個(gè)數(shù)據(jù)寫(xiě)到24C02的01H為首址單元中去的匯編程序

ORG 0000H

SCL BIT P3.4;定義24C02的串行時(shí)鐘

SDA BIT P3.5;定義24C02的串行數(shù)據(jù)線

LJMP START

START:LCALL STAR;調(diào)用

MOV R2,#08H;一個(gè)數(shù)據(jù)有8位

MOV DPTR,#0600H;定義源數(shù)據(jù)的位置

LOOP:MOV A,#00H

MOVC A,@A+DPTR

LCALL SDATA

LCALL ACK

JC LOOP

INC DPTR

DJNZ R2,LOOP

LCALL STOP;調(diào)用停止子程序

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

讀寫(xiě)子程序如下:

;寫(xiě)串行E2PROM子程序EEPW

; R3=10100000(命令1010+器件3位地址+讀/寫(xiě)。 器件地址一個(gè)芯片,是000)

; (R4)=片內(nèi)字節(jié)地址

; (R1)=欲寫(xiě)數(shù)據(jù)存放地址指針

; (R7)=連續(xù)寫(xiě)字節(jié)數(shù)n

EEPW: MOVP1,#0FFH

CLRP1.0;發(fā)開(kāi)始信號(hào)

MOVA,R3;送器件地址

ACALL SUBS

MOVA,R4;送片內(nèi)字節(jié)地址

ACALLSUBS

AGAIN: MOVA,@R1

ACALL SUBS;調(diào)發(fā)送單字節(jié)子程序INC R1

DJNZR7,AGAIN;連續(xù)寫(xiě)n個(gè)字節(jié)

CLR P1.0;SDA置0, 準(zhǔn)備送停止信號(hào)

ACALLDELAY ;延時(shí)以滿足傳輸速率要求

SETB P1.1 ;發(fā)停止信號(hào)

ACALLDELAY

SETB P1.0

RET

SUBS: MOVR0,#08H ;發(fā)送單字節(jié)子程序

LOOP: CLRP1.1

RLCA

MOVP1.0,C

NOP

SETBP1.1

ACALL DELAY

DJNZR0,LOOP ;循環(huán)8次送8個(gè)bit

CLRP1.1

ACALL DELAY

SETBP1.1

REP: MOVC,P1.0

JCREP;判應(yīng)答到否,未到則等待

CLR P1.1

RET

DELAY: NOP

NOP

RET

;讀串行E2PROM子程序EEPR

;(R1)=欲讀數(shù)據(jù)存放地址指針

;; R3=10100001(命令1010+器件3位地址+讀/寫(xiě)。 器件地址一個(gè)芯片,是000)

;(R4)=片內(nèi)字節(jié)地址

;(R7)=連續(xù)讀字節(jié)數(shù)

EEPR: MOVP1,#0FFH

CLRP1.0;發(fā)開(kāi)始信號(hào)

MOVA,R3;送器件地址

ACALL SUBS ;調(diào)發(fā)送單字節(jié)子程序

MOVA,R4;送片內(nèi)字節(jié)地址

ACALL SUBS

MOVP1,#0FFH

CLRP1.0;再發(fā)開(kāi)始信號(hào)

MOVA,R3

SETBACC.0;發(fā)讀命令

ACALL SUBS

MORE: ACALL SUBR

MOV@R1,A

INCR1

DJNZ R7,MORE

CLRP1.0

ACALL DELAY

SETB P1.1

ACALL DELAY

SETBP1.0 ;送停止信號(hào)

RET

SUBR: MOV R0,#08H ;接受單字節(jié)子程序

LOOP2: SETB P1.1

ACALL DELAY

MOVC,P1.0

RLCA

CLRP1.1

ACALL DELAY

DJNZ R0,LOOP2

CJNE R7,#01H,LOW

SETB P1.0;若是最后一個(gè)字節(jié)置A=1

AJMP SETOK

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

SETOK: ACALL DELAY

SETB P1.1

ACALL DELAY

CLRP1.1

ACALL DELAY

SETBP1.0;應(yīng)答畢,SDA置1

RET

程序中多處調(diào)用了DELAY子程序(僅兩條NOP指令),這是為了滿足I2C總線上數(shù)據(jù)傳送速率的要求,只有當(dāng)SDA數(shù)據(jù)線上的數(shù)據(jù)穩(wěn)定下來(lái)之后才能進(jìn)行讀寫(xiě)(即SCL線發(fā)出正脈沖)。另外,在讀最后一數(shù)據(jù)字節(jié)時(shí),置應(yīng)答信號(hào)為“1”,表示讀操作即將完成。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)芯片
    +關(guān)注

    關(guān)注

    11

    文章

    931

    瀏覽量

    44026
  • AT24C02
    +關(guān)注

    關(guān)注

    0

    文章

    79

    瀏覽量

    24642
  • E2PROM
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    18910
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    是否可以使用FX2LP對(duì)XCF02SVO20C進(jìn)行編程?

    我們有一款使用 FX2LP 和 XCF02SVO20C PROM 的產(chǎn)品。在我們的系統(tǒng)中,我們利用 PROM 來(lái)更新 FPGA 固件。由于我不是固件專(zhuān)家,我想問(wèn)是否可以使用 FX
    發(fā)表于 05-06 09:48

    求助,關(guān)于將固件編程到連接到CYUSB3014-BZXC的EEPROM中遇到的問(wèn)題求解

    固件是否已正確寫(xiě)入 I2C E2PROM (M24M02-DRMN6TP)。 我使用 USB 控制中心并按照以下步驟操作。 程序 ->FX3 -> I2C
    發(fā)表于 05-06 09:05

    基于APM32F407如何制作I2C EEPROM(AT24C02型號(hào))的MDK-Keil下載算法

    基于APM32F407如何制作I2C EEPROM(AT24C02型號(hào))的Keil下載算法,這樣在我們下載代碼時(shí)可以一鍵把數(shù)據(jù)燒錄到EEPROM中。
    的頭像 發(fā)表于 04-11 11:06 ?1103次閱讀
    基于APM32F407如何制作I<b class='flag-5'>2C</b> EEPROM(<b class='flag-5'>AT24C02</b>型號(hào))的MDK-Keil下載算法

    【CW32模塊使用】AT24C02-EEPROM存儲(chǔ)

    可以在電腦上或?qū)S迷O(shè)備上擦除已有信息,重新編程。一般用在即插即用。AT24C02是一個(gè)2K位串行CMOS E2PROM, 內(nèi)部含有256個(gè)8位字節(jié),CATALYST公司的先進(jìn)CMOS
    的頭像 發(fā)表于 03-29 17:26 ?831次閱讀
    【CW32模塊使用】AT<b class='flag-5'>24C02</b>-EEPROM<b class='flag-5'>存儲(chǔ)</b>器

    DD10-36S24E3C2 DD10-36S24E3C2

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)DD10-36S24E3C2相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DD10-36S24E3C2的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DD10-36S24E3C2真值表,
    發(fā)表于 03-20 18:47
    DD10-36S<b class='flag-5'>24E3C2</b> DD10-36S<b class='flag-5'>24E3C2</b>

    DD6-05S24E3C2 DD6-05S24E3C2

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)DD6-05S24E3C2相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DD6-05S24E3C2的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DD6-05S24E3C2真值表,DD6
    發(fā)表于 03-20 18:46
    DD6-05S<b class='flag-5'>24E3C2</b> DD6-05S<b class='flag-5'>24E3C2</b>

    FK6-36S24E2C3 FK6-36S24E2C3

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)FK6-36S24E2C3相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有FK6-36S24E2C3的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,F(xiàn)K6-36S24E2C3真值表,F(xiàn)K6
    發(fā)表于 03-20 18:41
    FK6-36S<b class='flag-5'>24E2C</b>3 FK6-36S<b class='flag-5'>24E2C</b>3

    STM32F407的兩個(gè)USB口能否分別實(shí)現(xiàn)讀卡器和讀U盤(pán)的功能以及硬件IIC讀寫(xiě)AT24C02?

    需求如下: 1.OTS_FS(PA 11,PA12)實(shí)現(xiàn)TF卡的讀卡器功能, 2.OTS_HS(PB14,PB15)實(shí)現(xiàn)讀寫(xiě)U盤(pán)功能 3.硬件IIC(PB8,PB9)讀寫(xiě)AT24C02
    發(fā)表于 03-11 06:23

    【AG32開(kāi)發(fā)板體驗(yàn)連載】智能蒸烤箱--AG32VF407I2C總線測(cè)試

    E2PROM-24LC02BT的訪問(wèn),具體電路如下: 二、24LC02BT介紹 24LC02BT-I/SN是一款2Kb的EEPROM(電可擦除可編程只讀
    發(fā)表于 11-20 23:15

    數(shù)據(jù)保存100年!納祥科技國(guó)產(chǎn)EEPROM芯片NX24C02A,兼容替代AT24C02

    可擦可編程只讀存儲(chǔ)器。它是一種特殊的存儲(chǔ)芯片,它允許在有電源的情況下進(jìn)行多次擦除和編程操作,而數(shù)據(jù)一旦保存,即使斷電也不會(huì)丟失。因其具有存儲(chǔ)信息可靠性高、擦寫(xiě)次數(shù)多的特點(diǎn),廣泛
    的頭像 發(fā)表于 11-14 01:08 ?1059次閱讀
    數(shù)據(jù)保存100年!納祥科技國(guó)產(chǎn)EEPROM<b class='flag-5'>芯片</b>NX<b class='flag-5'>24C02</b>A,兼容替代<b class='flag-5'>AT24C02</b>

    一文帶你了解什么是SD NAND存儲(chǔ)芯片

    單片機(jī)的開(kāi)發(fā)上會(huì)對(duì)簡(jiǎn)單的數(shù)據(jù)進(jìn)行存儲(chǔ)。   這里就以AT24C256存儲(chǔ)芯片來(lái)舉例,下圖是該芯片的內(nèi)部結(jié)構(gòu)圖 。   可以看出主要是以II
    發(fā)表于 11-13 15:20

    pcm2706的iic可以進(jìn)行寫(xiě)操作嗎?

    pcm2706的iic 可以進(jìn)行寫(xiě)操作嗎?比如說(shuō):pcm2706通過(guò)iic對(duì)外掛的 at24C02 存儲(chǔ)芯片進(jìn)行寫(xiě)操作?
    發(fā)表于 11-08 07:48

    怎么將PPS中已經(jīng)編譯好的圖形才程序,燒寫(xiě)到TLV320AIC3254EVM-K的E2PROM?

    怎么將PPS中已經(jīng)編譯好的圖形才程序,燒寫(xiě)到板上的E2PROM???
    發(fā)表于 10-31 07:32

    英銳芯AD24C02_16-Byte(中性)

    AD24C02是一款串行電可擦除編程只讀存儲(chǔ)器(EEPROM)。存儲(chǔ)器可存儲(chǔ)256個(gè)字節(jié)數(shù)據(jù),分為16頁(yè) 每頁(yè)16字節(jié),隨機(jī)字尋址需要8位數(shù)
    發(fā)表于 09-09 15:08 ?0次下載

    存儲(chǔ)芯片有哪些類(lèi)型

    存儲(chǔ)芯片,又稱(chēng)為半導(dǎo)體存儲(chǔ)器,是以半導(dǎo)體電路作為存儲(chǔ)媒介的存儲(chǔ)器,廣泛應(yīng)用于計(jì)算機(jī)、消費(fèi)電子、智能終端、固態(tài)存儲(chǔ)硬盤(pán)等領(lǐng)域。按照不同的分類(lèi)標(biāo)
    的頭像 發(fā)表于 07-24 16:40 ?4740次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品