PDA

View Full Version : Ok I Give Up :( I2cwrite And Read



SuB-ZeRo
- 11th July 2005, 02:24
HERE ARE THE CODES I REALLY CAN'T FIND THE PROBLEM.I READ MELANIE'S (I2CRead & I2CWrite not working as expected)AND TRYED EVERYTHING BUT NOT WORKING
I AM USEING
16F877 AND 24C02 AND EVERY THING CONNECTED WELL.

'''''''''''THE CODES
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
adcon1=7
kont var byte
kont = %10100000
adr var BYTE
adr =2
B2 VAR BYTE
B2=0
B VAR BYTE
B=145

loop:
if portb.0=0 then goto wrt
if portb.1=0 then goto wrd
goto loop

wrt:
lcdout $fe,1
lcdout "YAZILIYOR..."
I2CWRITE PORTC.4,PORTC.3,kont,adr,[B]
PAUSE 1000
lcdout $fe,1
lcdout "YAZILDI...."
GOTO LOOP

wrd:
I2CREAD PORTC.4,PORTC.3,kont,adr,[B2]
PAUSE 30
lcdout $fe,1
lcdout "OKUNAN:",#B2
GOTO LOOP
END


IN THE PICTURE U CAN SEE THE PROBLEM WELL
WHERE IS THE PROBLEM????

Melanie
- 11th July 2005, 02:38
I don't have a Datasheet for a 24C02F, but I assume you've connected Vss and Vdd as you should have (since it's not shown on your schematic)... and what have you done with the WP pin? Is it grounded or floating? Again, not shown in your schematic.

SuB-ZeRo
- 11th July 2005, 03:02
http://www.geocities.com/burakloves/24c02.pdf datasheet of the 24c02 and yes WP is connected with ground.Proteus don'y use Vdd or Vss it connects automaticly.I set up this circuit in real world and still have the same result :(
and u can see the circuit2

mytekcontrols
- 11th July 2005, 05:48
I understand that a lot of pcb layout packages don't always show VDD, VCC, VSS, or GND connections on devices, but I do see a floating MCLR connection which is a not good. If this isn't tied to +5V (or whatever you are running for a positive supply), you will have random resets occurring. Hopefully this IS the problem, since this would be an easy fix.

Good Luck,

SuB-ZeRo
- 11th July 2005, 17:04
Yes in the curcuit i can't connect the Mclr to the +5 V if i do the program stops.But in the real world i connected the mclr to the +5 V still nothing change i do every thing that has been writen in the threads and picbasic book.I give word to adres after than i give byte to adres nothing change. And suggestions?

SuB-ZeRo
- 11th July 2005, 17:26
HERE IS THE CODES

DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
adcon1=7
kontwr CON %10100000
adr var byte
adr =0000
B2 VAR WORD
b2=0
B VAR WORD
B=185
loop:
if portb.0=0 then goto wrt
if portb.1=0 then goto wrd
goto loop

wrt:
lcdout $fe,1
lcdout "YAZILIYOR..."
I2CWRITE PORTC.4,PORTC.3,%10100001,adr,[B]
PAUSE 1000
lcdout $fe,1
lcdout "YAZILDI...."
GOTO LOOP

wrd:
I2CREAD PORTC.4,PORTC.3,kontwr,adr,[b2]
PAUSE 30
lcdout $fe,1
lcdout "OKUNAN:",#B2
GOTO LOOP
END

NOW IT'S WORKING GOOD