MOV P1M0, #00H
MOV P1M1, #00H
MOV P2M0, #00H
MOV P2M1, #00H
MOV P3M0, #00H
MOV P3M1, #00H
MOV P4M0, #00H
MOV P4M1, #00H
MOV P5M0, #00H
MOV P5M1, #00H
MOV P_SW2,#80H
MOV A,#11100000B ;Set the I2C module as master mode
MOV DPTR,#I2CCFG
MOVX @DPTR,A
MOV A,#00000000B
MOV DPTR,#I2CMSST
MOVX @DPTR,A
CALL START ;Send start command
MOV A,#0A0H
CALL SENDDATA ;Send device address + write command
CALL RECVACK
MOV A,#000H ;Send storage address high byte
CALL SENDDATA
CALL RECVACK
MOV A,#000H ;Send storage address low byte
CALL SENDDATA
CALL RECVACK
MOV A,#12H ;Write test data 1
CALL SENDDATA
CALL RECVACK
MOV A,#78H ;Write test data 2
CALL SENDDATA
CALL RECVACK
CALL STOP ;Send stop command
CALL DELAY ;Waiting for the device to write data
CALL START ;Send start command
MOV A,#0A0H ;Send device address + write command
CALL SENDDATA
CALL RECVACK
MOV A,#000H ;Send storage address high byte
CALL SENDDATA
CALL RECVACK
MOV A,#000H ;Send storage address low byte
CALL SENDDATA
CALL RECVACK
CALL START ;Send start command
MOV A,#0A1H ;Send device address + read command
CALL SENDDATA
CALL RECVACK
CALL RECVDATA ;Read data 1
MOV P0,A
CALL SENDACK
CALL RECVDATA ;Read data 2