串行E2PROM 24LC65在单片机中的应用
;主程序启动与停止总线
SETB P3.1 ;SCL=1
SETB P3.0 ;SDA=1
CLR P3.0 ;SDA=0,启动总线
┊
┊
CLR P3.0
SETB P3.1
SETB P3.0 ;停止总线操作
; 写一字节的子程序
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 ;写入D6位
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 ;写一字节结束
CLR P3.1 ;ACK
RET
5. 读24LC65程序
读24LC65程序中既有写控制字和写地址操作,又有读数据的操作,其中,写控制字和写地址操作相同于写24LC65程序,即前三个字节相同,只不过第三字节结束后要停止总线操作。第四字节重新启动总线,送读命令。只有第五字节才是读24LC65的操作。读24LC65的程序如下:
MOV R7,#08H
READ:SETB P3.1 ;读一字节于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 ;停止总线
RET
该程序在实际使用中运行可靠,实用性强。如果希望增加存储容量,可以另选单片机的两条I/O线,同样可以连接8片24LC65芯片,组成另一64kB的串行E2PROM。
评论