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