- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4C512中数据文件的系统化管理》P47
1.()《AT24C512》P如下:. 公用子程序:
RD24C:把DPTR所指的AT24C512单元内容读出,放到(R1,R0)所指的RAM单元,R6为数据长度
WR24C:把(R1,R0)所指的RAM单元内容写入DPTR所指的AT24C512单元,R6为数据长度
WR_ONE:把DPTR所指的RAM单元内容写入DPTR所指的AT24C512单元
TZDPTR: MUL AB ;DPTR=DPTR+A*B
ADD A, DPL
MOV DPL, A
MOV A, DPH
ADDC A, B
MOV DPH, A
RET
AT24C512系统格式化:把目录区和页面分配区初始化为0EEEEH
AT_INIT: MOV DPTR, #AT24C
MOV R7, #80H
MOV A, #0EEH
ATINIT1:MOVX @DPTR, A
INC DPTR
DJNZ R7, ATINIT1
MOV R7, #54
ATINIT2:MOV DPTR, #AT24C
MOV R1, DPH
MOV R0, DPL
MOV R6, #80H
MOV A, R7
MOV B, #80H
MOV DPTR, #0
LCALL TZDPTR
PUSH 7
LCALL WR24C
POP 7
DJNZ R7, ATINIT2
RET
为方便操作,每次开机把目录区和页面分配区的内容读入到RAM的相同地址中,程序如下:
R_HEAD:CLR IE.7
MOV R5, #0
RHEAD1:MOV A, R5
MOV B, #80H
MOV DPTR, #0
LCALL TZDPTR
MOV R1, DPH
MOV R0, DPL
MOV R6, #80H
PUSH 5
LCALL RD24C
POP 5
INC R5
CJNE R5, #54, RHEAD1
SETB IE.7
RET
添加文件程序如下:
YB_SAVE: MOV PAGE_NO,#0 ;PAGES=需要的页数
MOV DPTR, #AT_FAT ;PAGE_NO为空闲页数计数
YBSAVE1: MOVX A, @DPTR ; AT_FAT 为页面分配表开始地址
CJNE A, #0EEH, YBSAVE2
INC PAGE_NO
YBSAVE2: INC DPTR
INC DPTR
MOV A, PAGE_NO
CLR C
SUBB A, PAGES
JZ YBSAVE4
MOV A, DPH
CJNE A, #1BH, YBSAVE1 ;1B00H为页面分配表的结束地址
YBSAVE3: LCALL ERRDSP ;显示错误信息
RET
YBSAVE4: MOV R7, #0
YBSAVE5: MOV DPTR, #YB_BEG ; YB_BEG为目录区开始地址
MOV A, R7
MOV B, #10
LCALL TZDPTR
MOVX A, @DPTR
CJNE A, #0EEH, YBSAVE16
SJMP YBSAVE6
YBSAVE16: INC R7
CJNE R7, #153, YBSAVE5 ;最多可存153个文件
SJMP YBSAVE3 ;已经存满
YBSAVE6: CLR IE.7
PUSH 7 ;保存找到的空闲目录区序号
LCALL DO_DSP ;显示“正在存储”
MOV DPTR, #AT_FAT
YBSAVE7: MOVX A, @DPTR
CJNE A, #0EEH, YBSAVE8
SJMP YBSAVE9
YBSAVE8: INC DPTR
INC DPTR
SJMP YBSAVE7
YBSAVE9: PUSH DPH ;找到第一个空闲页,把地址保护起来
PUSH DPL
MOV R1, DPH
MOV R0, DPL
MOV A, #0FFH
MOVX @DPTR, A
INC DPTR
MOVX @DPTR, A ;暂时把它看做是文件的最后一页
PUSH DPH
PUSH DPL
PUSH 0
PUSH 1
LCALL WR_ONE
POP 1
POP 0
POP DPL
POP DPH
INC DPTR
MOV R7, PAGES
DEC R7
MOV A, R7
JZ YBSAVE13 ;如果只需要一页,则页面分配表修改结束
YBSAVE10: M
文档评论(0)