串行E2PROM 24LC65在單片機(jī)中的應(yīng)用
?。恢鞒绦騿?dòng)與停止總線
SETB P3.1??;SCL=1
SETB P3.0 ;SDA=1
CLR P3.0?。籗DA=0,啟動(dòng)總線
┊
┊
CLR P3.0
SETB P3.1
SETB P3.0??;停止總線操作
; 寫一字節(jié)的子程序
MOV C,6FH ;D7位送給進(jìn)位C
CLR P3.1
MOV P3.0,C
SETB P3.1;寫入D7位
CLR P3.1
MOV C,6EH??;D6位送給進(jìn)位C
MOV P3.0,C
SETB P3.1??;寫入D6位
CLR P3.1
MOV C,6DH ;D5位送給進(jìn)位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?。粚懭隓2位
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程序,即前三個(gè)字節(jié)相同,只不過第三字節(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)論