??? 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 |
Topic | Author | Date |
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 |