新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 鐵電存儲(chǔ)器FM24C16原理及其在多MCU系統(tǒng)中的應(yīng)用

鐵電存儲(chǔ)器FM24C16原理及其在多MCU系統(tǒng)中的應(yīng)用

作者: 時(shí)間:2012-04-11 來(lái)源:網(wǎng)絡(luò) 收藏

下面給出的頁(yè)面寫(xiě)和任意字節(jié)讀匯編子程序。程序經(jīng)過(guò)驗(yàn)證,效果良好(為保證穩(wěn)定性,可以在相應(yīng)地方加入空語(yǔ)句以延時(shí))。


頁(yè)面寫(xiě)子程序:
PAGE-WR: ACALL START_BIT
MOV A,#10100000B
MOV R7,#4
ACALL SHFTO
;SHFTO為送位子程序,以上3行送
1010到
MOV A,#20H
MOV R7,#3
ACALL SHFTO
;以上3行確定寫(xiě)的00l頁(yè)
MOV A,#00H
MOV R7,#1
ACALL SHFTO ;以上3行送寫(xiě)控制位0
ACALL SlAVE_ACK
;SLAVE-ACK為從應(yīng)答子程序,在此檢測(cè)
從應(yīng)答位
MOV A,#00H
MOV R7,#8
ACALL SHFTO
;以上3行確定寫(xiě)入數(shù)據(jù)首地址為00H
ACALLSLAVE-ACK ;檢測(cè)從應(yīng)答位
MOV R0,#00H ;R0中為被寫(xiě)人數(shù)據(jù)
所在單元首地址
MOV R4,#7FH ;R4中為寫(xiě)入字節(jié)數(shù)
(現(xiàn)為256B)
NEXT-DATA:MOV A,@R0 ;調(diào)入第1個(gè)寫(xiě)入數(shù)據(jù)
INC R0 ;R0指向第2個(gè)數(shù)據(jù)所在單元地址
MOV R7,#8
ACALL SHFTO;寫(xiě)入數(shù)據(jù)
ACALL SLAVE-ACK ;檢測(cè)從應(yīng)答位
DJNZ R4,NEXT-DATA
;循環(huán)寫(xiě)入下一個(gè)字節(jié)數(shù)據(jù)
ACALL STOP-BIT
;STOP-BIT為停止位,結(jié)束寫(xiě)操作(此處沒(méi)有寫(xiě)延時(shí)等待)
RET ;返回,程序結(jié)束


讀任意地址子程序:
SELECT-RD:ACALL START-BIT
ACALL START-BIT
MOV A,#10100000B
MOV R7,#4
ACALL SHFTO
MOV A,#20H
MOV R7,#3
ACALL SHFTO
MOV A,#0FOH
MOV R7,#1
ACALL SHFTO
ACALL SlAVE-ACK
MOV R5,#00H
MOV R7,#8
ACALL SHFTO
ACALL SlAVE-ACK
;以上為偽寫(xiě),確定讀FM24C16的001
00H單元數(shù)據(jù)
ACALL START-BIT
MOV A,#10100000B
MOV R7,#4
ACALL SHFTO
MOV A,#20H
MOV R7,#3
ACALL SHFTO
MOV A,#0FOH
MOV R7,#1
ACALL SHFTO ;上面3行送讀控制位1
ACALL SlAVE-ACK
MOV R5,#00H ;清R5,以存儲(chǔ)讀出數(shù)據(jù)
MOV R7,#8 ;R7作讀出位記數(shù)器
CLOCK8: SETB SCL
MOV C,SDA
CLR SCL
MOV A,R5
RLC A
MOV R5,A
;以上6行讀出FM24C16送來(lái)的1位
DJNZ R7,CLOCK8 ;循環(huán)讀出1B數(shù)據(jù)
ACALL NO_ACK
;NO_ACK為無(wú)需應(yīng)答位子程序
ACLL STOP_BIT ;停止
RET ;程序結(jié)束

存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


上拉電阻相關(guān)文章:上拉電阻原理

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉