📄 24xx.txt
字号:
;串行eeprom 24cxx 系列的应用
;24C02的1.2.3.4.7脚接地
;注意 : 连续向存储器写数据或读出时须在中间加入延时时间
SCL BIT P1.0
SDA BIT P1.1
DATA_1 EQU 30H ;用于数据输入输出的暂存位
DATA_2 EQU 31H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;写入数据子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WR_DATA: CALL ST24 ;发启动指令
MOV A,DATA_2 ;写入芯片地址A0H ,向芯片写数据时的指令
CALL WBYTE
MOV A,#80H ;写入数据的存储地址
CALL WBYTE
MOV A,DATA_1
CALL WBYTE ;写入数据DATA_1
CALL STOP24 ;发停止指令
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;读出数据子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RD_DATA: CALL ST24 ;发启动指令
MOV A,#0A0H ;写入芯片地址A0H ,向芯片写数据时的指令
CALL WBYTE
MOV A,#80H ;写入数据的存储地址
CALL WBYTE
NOP
CALL ST24 ;发启动指令
MOV A,#0A1H ;写入芯片地址0A1H
CALL WBYTE
CALL RBYTE ;读出数据
MOV DATA_1,A
CALL STOP24
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;字节写子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WBYTE: NOP
NOP
MOV R3,#8
WBY0: CLR SCL
RLC A
MOV SDA,C ;写位
NOP
NOP
SETB SCL
DJNZ R3,WBY0 ;循环8次
CLR SCL
NOP
NOP
SETB SCL
NOP
NOP
JB SDA,#$ ;等待SEERPOM应答
NOP
NOP
CLR SCL
NOP
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;字节读子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RBYTE: NOP
NOP
MOV R3,#8
RBY0: CLR SCL
NOP
NOP
SETB SCL
NOP
NOP
MOV C,SDA ;读位
RLC A
DJNZ R3,RBY0 ;循环8次
CLR SCL
NOP
NOP
SETB SDA ;无应答信号ACK
NOP
NOP
SETB SCL
NOP
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;启动子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ST24: CLR SCL
NOP
NOP
SETB SDA
NOP
NOP
SETB SCL
NOP
NOP
CLR SDA
NOP
NOP
CLR SCL
NOP
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;停止子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STOP24: CLR SCL
NOP
NOP
CLR SDA
NOP
NOP
SETB SCL
NOP
NOP
SETB SDA
NOP
NOP
CLR SCL
NOP
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -