Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
07/03/07 05:12
Read: times


 
#141436 - I2C 24C04 cant solve problem in code
Hello, I trying to read/write an 24C04 i2c eeprom, already read many sites, infos, pdfs, and codes, but cant solve here, isnt working:

I have 24c04 with pins 1,2,3,4 to ground
pin 5 to P0.0
pin 6 to P0.1
pin 7 open
pin 8 to +
leds connected to p2
I want to read 24c04 value, increment it, then write again on same place.

here is my code, please help me to figure out the problem. Thanks. (before posting the code is correct idented)

SDA EQU P0.1
SCL EQU P0.0

TL EQU 07Bh ; Endereços das variaveis
TH EQU 07Ch
TS EQU 07Dh
TP EQU 07Eh


I2CMEM EQU 10100000b
DAT EQU R6
MODE EQU R7 ;0=INICIALIZA ESCRITA (DATA = ENDEREÇO DO CHIP)
;1=INICIALIZA LEITURA (DATA = ENDEREÇO DO CHIP)
;255=ESCREVE UM BYTE (DATA = VALOR)
;254=TERMINA

START:
MOV DAT,I2CMEM ;ENVIA ENDEREÇO I2C
MOV MODE,#0
CALL I2CSEND

MOV DAT,#0 ;ENVIA ENDEREÇO DA MEMORIA
MOV MODE,#255
CALL I2CSEND

MOV DAT,I2CMEM
MOV MODE,#1
CALL I2CSEND

MOV MODE,#1
CALL I2CREAD
MOV TP,DAT

MOV MODE,#254 ;FINALIZA STOP
CALL I2CSEND

MOV P2,TP

INC TP

MOV DAT,I2CMEM ;ENVIA ENDEREÇO I2C
MOV MODE,#0
CALL I2CSEND

MOV DAT,#0 ;ENVIA ENDEREÇO DA MEMORIA
MOV MODE,#255
CALL I2CSEND

MOV DAT,TP ;ENVIA VALOR
MOV MODE,#255
CALL I2CSEND

MOV MODE,#254 ;FINALIZA STOP
CALL I2CSEND

CALL DELAY
JMP START


I2CSEND:
mov a,MODE
inc a
clr c
jz IW0
inc a
clr c
jz IW2

mov a,DAT
add a,MODE
mov DAT,a

;inic
IW9:
setb sda
setb scl
nop
nop
nop
nop

nop
nop
nop
nop
;star
clr sda
nop
nop
nop
clr scl

;send
IW0:
mov a,DAT
mov DAT,#8
IW1:
rlc a
mov sda,c
setb scl
nop
nop
nop
clr scl
nop
nop
djnz DAT,IW1
setb sda
nop
nop
setb scl
nop
nop
nop
nop
mov c,sda
clr scl
nop
mov DAT,#0
jnc IW3

;stop
IW2:
clr sda
nop
setb scl
nop
nop
nop
nop
setb sda
nop
nop
nop
inc DAT

IW3: RET



I2CREAD:
mov DAT,#8
clr a
IR0: setb sda
nop
nop
setb scl
nop
nop
mov c,sda
nop
nop
clr scl
rlc a
djnz DAT,IR0
mov DAT,a
nop
nop
nop
nop
;ack
mov a,MODE
jnz IR1
clr sda
sjmp IR2
IR1: setb sda
IR2: setb scl
nop
nop
nop
nop
nop
nop
clr scl

RET


DELAY: MOV TS,#5
MOV TH,#255
MOV TL,#255
DTL: DJNZ TL,$
MOV TL,#255
DJNZ TH,DTL
MOV TH,#255
DJNZ TS,DTL
RET

List of 11 messages in thread
TopicAuthorDate
I2C 24C04 cant solve problem in code            01/01/70 00:00      
   How to post code            01/01/70 00:00      
   first 3-errors            01/01/70 00:00      
      # solved the problem, THANK YOU Stefan            01/01/70 00:00      
         the most common blindness in '51 asm            01/01/70 00:00      
            I2C Question, cant find solid info            01/01/70 00:00      
               never tryed            01/01/70 00:00      
                  With address!            01/01/70 00:00      
                     try other            01/01/70 00:00      
         in need of help            01/01/70 00:00      
            Google for...            01/01/70 00:00      

Back to Subject List