24c16存储器怎么编程

幕后女杰 1个月前 已收到1个回答 举报

僫莋劇心墙 4星

共回答了468个问题采纳率:99.6% 评论

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

页面写子程序:

PAGE-WR: ACALL START_BIT

MOV A,#10100000B

MOV R7,#4

ACALL SHFTO

;SHFTO为送位子程序,以上3行送

1010到FM24C16

MOV A,#20H

MOV R7,#3

ACALL SHFTO

;以上3行确定写FM24C16的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,#

21小时前

26
可能相似的问题

猜你喜欢的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 959505@qq.com