久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 串行E2PROMAT 24C512在單片機中應用

串行E2PROMAT 24C512在單片機中應用

作者: 時間:2012-03-21 來源:網絡 收藏


MAIN: MOV SP #60H;設堆棧
Write: MOV SlvAdr, #A0H;選擇1個器件地址
MOV ByteCnt, #08H;設寫入數據長度為8字節
MOV SubAdr1, #00H;設寫入單元首址為0020H
MOV SubAdr2, #20H;
LCALL WriteData ; 寫數據
……
Read: MOV Slvadr, #A0H;選擇1個器件地址
MOV Bytecnt, #08H;設讀出數據長度為8字節
MOV SubAdr1, #00H;設讀出單元
MOV SubAdr2, #20H;首址為0020H
LCALL ReadData; 讀數據
……
WriteData:LCALL Start; I2C總線起始條件
MOV A,SlvAdr; 取器件地址
LCALL writeByte; 發送器件地址
MOV A,SubAdr1
LCALL writeByte;發送高8位地址
MOV A,SubAdr2
LCALLwriteByte;發送低8位地址
MOVR0,#WriteDat;取寫入數據的首地址
Next:MOVA,@R0
LCALLwriteByte;寫入1字節數據
LNCR0;取下1個數據
DJNZByteCnt,Next;重復操作直到寫完全部數據
LCALLStop;發送I2C總線停止條件
LCALLDL10ms;延時10ms等待E2PROM內部數據
;寫完
RET
;讀數據子程序
ReadData:LCALLStart
MOVA,SlvAdr
LCALLWriteByte
MOVA,Subadr1
LCALLWriteByte
MOVA,Subadr2
LCALLWriteByte
LCALLStart;重復發送I2C總線起始條件
MOVA,Slvadr
SETBACC.0;R/W位置1
LCALLWriteByte
CLRACK;請讀非應答標志
MOVR0,#RdadData;讀緩沖區首址
DJNZByteCnt,Next1
SJMPLast
Next1:LCALLReadByte;接收1個字節數據
MOV@R0,A;接收數據送緩沖區
INCR0
DJNZByteCnt,Next1;重復接收
Last:SETBACK;接收最后1個字節數據
ACALLReadByte
MOV#R0,A
LCALLStop
RET

上面給出讀寫操作主程序、頁面寫入子程序及其多字節讀子程序。受篇幅限制,部分子程序沒有給出,讀者可根據AT的操作時序自行編制或參閱相關文獻。

5結束語

由AT與AT89C2051等非總線構成的數據采集存儲系統具有體積小、成本低、可靠性高的特點,因而具有很高的價值。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉