<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機實(shí)現通用存貯器IC卡讀寫(xiě)

單片機實(shí)現通用存貯器IC卡讀寫(xiě)

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

3.6 字節寫(xiě)入模式寫(xiě)數據(WRITE_BYTE)

下列程序中的參數為:R6= =目的地址,A= =數據;數據如下:
WRITE_BYTE:PUSH ACC ;保存A中的數據
LCALL START_IC ;發(fā)開(kāi)始信號
MOV A,#DEVICEAD_W;寫(xiě)入器件地址
LCAL WR_BYTE
MOV A,R6 ;寫(xiě)入字節地址
LCALL WR_BYTE
POP ACC ;恢復A中數據
LCALL WR_BYTE ;寫(xiě)入數據
LCALL STOP_IC
RET

在收到8位數據后,EEPROM將通過(guò)SDA來(lái)回送確認信號,而傳送設備必須用停止狀態(tài)來(lái)終止寫(xiě)操作。這時(shí),EEPROM將進(jìn)入一個(gè)內時(shí)固定的寫(xiě)入周期并且禁止在此其間的所有輸入,直到寫(xiě)操作完成后才對通訊應答。其寫(xiě)入周期可自定義,最大為10ms。

3.7 頁(yè)面寫(xiě)入模式寫(xiě)數據(WRITE_PAGE)

以下程序中的參數為P0= =源指針,R6= =目的地址,R7= =頁(yè)面長(cháng)度。
WRITE_PAGE:LCALL START_IC
MOV A,#DEVICEAD_W
LCALL WR_BYTE
MOV A,R6
LCALL WR_BYTE
WRITE_PAGE1:MOV A,@R0
LCALL WR_BYTE
INC R0
DJNZ R7,WRITE_PAGE1
LCALL STOP_IC
RET

AT24C01/02可利用上述程序進(jìn)行8字節的頁(yè)面寫(xiě)入,它的操作類(lèi)似于寫(xiě)字節。不同的是,它無(wú)需在第一個(gè)字節送出后才以停止狀態(tài),不同在收到確認信號后,再傳送7個(gè)字節的數據碼,最后以停止狀態(tài)來(lái)終止頁(yè)面寫(xiě)序列。AT24C04/08/16的頁(yè)面為16字節。

3.8 立即地址讀模式(READ_BYTEC)

立即地址讀模式讀一字節數據的程序如下:READ_BYTEC:LCALL START_IC
MOV A,#DEVICEAD_R
LCALL WR_BYTE
LCALL RD_BYTE ;讀出默認地址數據
LCALL STOP_IC ;發(fā)停止狀態(tài)應答
RET
該程序執行后,其內部數據字地址指針將保持在上次讀寫(xiě)操作訪(fǎng)問(wèn)的最后一個(gè)地址,并按1遞增且在芯片上電期間一直有效。只有當地址為頁(yè)面的最末時(shí),下次訪(fǎng)問(wèn)才滾動(dòng)到該頁(yè)面的首地址。

3.9 隨機地址讀模式(READ_BYTER)

在下列程序中,R6= =源地址,程序如下:
READ_BYTER:LCALL START_IC
MOV A,#DEVICEAD_W ;執行空字節寫(xiě)序列
LCALL WR_BYTE ;載入數據地址
MOV A,R6
LCALL WR_BYTE
LCALL START_IC
MOV A,#DEVICEAD_R ;立即地址讀取
LCALL WR_BYTE
LCALL DR_BYTE
LCALL STOP_IC
RET
讀操作模式需要一個(gè)字節寫(xiě)序列載入數據地址。在器件和數據地址寫(xiě)入并得到確認后,將再產(chǎn)生另一個(gè)開(kāi)始條件,并送出讀操作器件的地址,同時(shí)激發(fā)一個(gè)立即地址讀取。

3.10 順序地址讀?。≧EAD_BYTES)

在下列程序中:R0= =目的指針;R7= =數據長(cháng)度,程序如下:
READ+BYTES:LCALL START_IC
MOV A,#DEVICEAD_R
LCALL WR_BYTE
READ_BYTES2:LCALL RD_BYTE
MOV @R0,A ;存放數據到目的地址
INC R0
DJNZ R7,READ_BYTES1
LCALL STOP_IC ;讀寫(xiě)指定長(cháng)度后停止
RET
READ_BYTES1:LCALL ACK_IC ;收到數據后發(fā)確認信號SJMP READ_BYTES2

其中順序讀取由立即尋址讀或隨機地址讀激發(fā),并在收到一字節數據后發(fā)確認信號應答。當讀數器件以停止狀態(tài)應答時(shí),操作被終止。

4、總結

該系統結構簡(jiǎn)單,在實(shí)際運行時(shí)具有很高的可靠性,同時(shí)具有一定的可擴展性,并可通過(guò)的串行口經(jīng)電平轉換后直接與計算機相連,以進(jìn)行數據通訊。另外,也可根據需要連接到其它引腳或卡座觸點(diǎn),如果適當改進(jìn)電路和程序,還可讀寫(xiě)加密卡和CPU卡等。


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

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>