在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AT24C512中數(shù)據(jù)文件的系統(tǒng)化管理

            AT24C512中數(shù)據(jù)文件的系統(tǒng)化管理

            作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
            文件系統(tǒng)程序源代碼如下:
            . 公用子程序:
            RD24C:把DPTR所指的AT24C512單元內(nèi)容讀出,放到(R1,R0)所指的RAM單元,R6為數(shù)據(jù)長(zhǎng)度
            WR24C:把(R1,R0)所指的RAM單元內(nèi)容寫入DPTR所指的AT24C512單元,R6為數(shù)據(jù)長(zhǎng)度
            WR_ONE:把DPTR所指的RAM單元內(nèi)容寫入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系統(tǒng)格式化:把目錄區(qū)和頁(yè)面分配區(qū)初始化為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
            為方便操作,每次開機(jī)把目錄區(qū)和頁(yè)面分配區(qū)的內(nèi)容讀入到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 AGES=需要的頁(yè)數(shù)
            MOV DPTR, #AT_FAT AGE_NO為空閑頁(yè)數(shù)計(jì)數(shù)
            YBSAVE1: MOVX A, @DPTR ; AT_FAT 為頁(yè)面分配表開始地址
            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為頁(yè)面分配表的結(jié)束地址
            YBSAVE3: LCALL ERRDSP ;顯示錯(cuò)誤信息
            RET
            YBSAVE4: MOV R7, #0
            YBSAVE5: MOV DPTR, #YB_BEG ; YB_BEG為目錄區(qū)開始地址
            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個(gè)文件
            SJMP YBSAVE3 ;已經(jīng)存滿
            YBSAVE6: CLR IE.7
            PUSH 7 ;保存找到的空閑目錄區(qū)序號(hào)
            LCALL DO_DSP ;顯示“正在存儲(chǔ)”
            MOV DPTR, #AT_FAT
            YBSAVE7: MOVX A, @DPTR
            CJNE A, #0EEH, YBSAVE8
            SJMP YBSAVE9
            YBSAVE8: INC DPTR
            INC DPTR
            SJMP YBSAVE7
            YBSAVE9: PUSH DPH ;找到第一個(gè)空閑頁(yè),把地址保護(hù)起來
            PUSH DPL
            MOV R1, DPH
            MOV R0, DPL
            MOV A, #0FFH
            MOVX @DPTR, A
            INC DPTR
            MOVX @DPTR, A ;暫時(shí)把它看做是文件的最后一頁(yè)
            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 ;如果只需要一頁(yè),則頁(yè)面分配表修改結(jié)束
            YBSAVE10: MOVX A, @DPTR
            CJNE A, #0EEH, YBSAVE11
            PUSH DPH
            PUSH DPL
            MOV DPH, R1 ;R1,R0為前一頁(yè)的頁(yè)面分配表地址
            MOV DPL, R0
            POP 0
            POP 1
            MOV A, R1
            MOVX @DPTR, A
            INC DPTR
            MOV A, R0
            MOVX @DPTR, A ;新地址寫入前一頁(yè)的地址單元
            PUSH 0
            PUSH 1
            PUSH 7
            LCALL WR_ONE ;把修改信息寫入AT24C512
            POP 7
            POP 1
            POP 0
            MOV DPH, R1
            MOV DPL, R0
            INC DPTR
            INC DPTR
            SJMP YBSAVE12
            YBSAVE11: INC DPTR
            INC DPTR
            YBSAVE12: DJNZ R7, YBSAVE10
            MOV DPH, R1
            MOV DPL, R0
            MOV A, #0FFH
            MOVX @DPTR, A
            INC DPTR
            MOVX @DPTR, A ;寫入0FFFFH,表示文件分配結(jié)束
            LCALL WR_ONE
            YBSAVE13: POP 0
            POP 1
            POP 0
            POP 1 ;R1R0=DPTR=找到的第一個(gè)空閑頁(yè)
            POP ACC ;ACC=R7=空閑目錄區(qū)序號(hào)
            PUSH ACC
            MOV DPTR, #YB_BEG+8
            MOV B, #10
            LCALL TZDPTR ;確定目錄空閑區(qū)地址
            MOV A, R1


            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉