串行E2PROM 24LC65在單片機(jī)中的應(yīng)用
??;主程序啟動(dòng)與停止總線
SETB P3.1 ;SCL=1
SETB P3.0 ;SDA=1
CLR P3.0??;SDA=0,啟動(dòng)總線
┊
┊
CLR P3.0
SETB P3.1
SETB P3.0?。煌V箍偩€操作
?。?寫(xiě)一字節(jié)的子程序
MOV C,6FH??;D7位送給進(jìn)位C
CLR P3.1
MOV P3.0,C
SETB P3.1;寫(xiě)入D7位
CLR P3.1
MOV C,6EH?。籇6位送給進(jìn)位C
MOV P3.0,C
SETB P3.1??;寫(xiě)入D6位
CLR P3.1
MOV C,6DH ;D5位送給進(jìn)位C
MOV P3.0,C
SETB P3.1??;寫(xiě)入D5位
CLR P3.1
MOV C,6CH
MOV P3.0,C
SETB P3.1??;寫(xiě)入D4位
CLR P3.1
MOV C,6BH
MOV P3.0,C
SETB P3.1 ;寫(xiě)入D3位
CLR P3.1
MOV C,6AH
MOV P3.0,C
SETB P3.1 ;寫(xiě)入D2位
CLR P3.1
MOV C,69H
MOV P3.0,C
SETB P3.1??;寫(xiě)入D1位
CLR P3.1
MOV C,68H
MOV P3.0,C
SETB P3.1 ;寫(xiě)入D0位
CLR P3.1
NOP
SETB P3.1 ;寫(xiě)一字節(jié)結(jié)束
CLR P3.1 ;ACK
RET
5. 讀24LC65程序
讀24LC65程序中既有寫(xiě)控制字和寫(xiě)地址操作,又有讀數(shù)據(jù)的操作,其中,寫(xiě)控制字和寫(xiě)地址操作相同于寫(xiě)24LC65程序,即前三個(gè)字節(jié)相同,只不過(guò)第三字節(jié)結(jié)束后要停止總線操作。第四字節(jié)重新啟動(dòng)總線,送讀命令。只有第五字節(jié)才是讀24LC65的操作。讀24LC65的程序如下:
MOV R7,#08H
READ:SETB P3.1 ;讀一字節(jié)于A中
CLR P3.1 ;移出一位
MOV C,P3.0 ;移出一位傳給進(jìn)位C
RLC A
DJNZ R7,READ
SETB P3.1
CLR P3.1 ;ACK
CLR P3.0
SETB P3.1
SETB P3.0 ;停止總線
RET
該程序在實(shí)際使用中運(yùn)行可靠,實(shí)用性強(qiáng)。如果希望增加存儲(chǔ)容量,可以另選單片機(jī)的兩條I/O線,同樣可以連接8片24LC65芯片,組成另一64kB的串行E2PROM。
評(píng)論