新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 铁电存储器FM24C16原理及其在多MCU系统中的应用

铁电存储器FM24C16原理及其在多MCU系统中的应用

作者: 时间:2012-04-11 来源:网络 收藏

下面给出的页面写和任意字节读汇编子程序。程序经过验证,效果良好(为保证稳定性,可以在相应地方加入空语句以延时)。


页面写子程序:
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行确定写的00l页
MOV A,#00H
MOV R7,#1
ACALL SHFTO ;以上3行送写控制位0
ACALL SlAVE_ACK
;SLAVE-ACK为从应答子程序,在此检测
从应答位
MOV A,#00H
MOV R7,#8
ACALL SHFTO
;以上3行确定写入数据首地址为00H
ACALLSLAVE-ACK ;检测从应答位
MOV R0,#00H ;R0中为被写人数据
所在单元首地址
MOV R4,#7FH ;R4中为写入字节数
(现为256B)
NEXT-DATA:MOV A,@R0 ;调入第1个写入数据
INC R0 ;R0指向第2个数据所在单元地址
MOV R7,#8
ACALL SHFTO;写入数据
ACALL SLAVE-ACK ;检测从应答位
DJNZ R4,NEXT-DATA
;循环写入下一个字节数据
ACALL STOP-BIT
;STOP-BIT为停止位,结束写操作(此处没有写延时等待)
RET ;返回,程序结束


读任意地址子程序:
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
;以上为伪写,确定读FM24C16的001
00H单元数据
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,以存储读出数据
MOV R7,#8 ;R7作读出位记数器
CLOCK8: SETB SCL
MOV C,SDA
CLR SCL
MOV A,R5
RLC A
MOV R5,A
;以上6行读出FM24C16送来的1位
DJNZ R7,CLOCK8 ;循环读出1B数据
ACALL NO_ACK
;NO_ACK为无需应答位子程序
ACLL STOP_BIT ;停止
RET ;程序结束

存储器相关文章:存储器原理


上拉电阻相关文章:上拉电阻原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭