YOU WROTE:
-------------------------------------------------------------------------
I do not use a LCD display . I have make only a comparision .
I use in front of my program this line to write text "
I2Cwrite I2CDAT, I2CCLK, $A0, adr,[" Temperature is _________________ "]
late in program , in free space I wish to write DATA of temperature
adr = 15( where is free space )
I2Cread I2CDAT, I2CCLK, $A0, adr,[ temperature DATA ]
------------------------------------------------------------------------

I assume you have grounded pin 1 , pin 2 and pin 3 of your 24LC01 chip and that you have pulled up pin 6 and pin 5 with a 4.7K resistors (see page 85 of the manual)

Just use the following code:

'set these variable

WriteDev con %10100000
ReadDev con %10100001
Celsius VAR BYTE [32]

Fix text in the array

Celsius[0]=84
Celsius[1]=101
Celsius[2]=109
Celsius[3]=112
Celsius[4]=101
Celsius[5]=114
Celsius[6]=97
Celsius[7]=116
Celsius[8]=117
Celsius[9]=114
Celsius[10]=32
Celsius[11]=105
Celsius[12]=115
Celsius[13]=32
Celsius[14]=0
Celsius[15]=44
Celsius[16]=0


Now in your program you read temperature from your device and you have the value in the variable TEMPERATURE!

write:

Celsius[14] = TEMPERATURE/100
Celsius[16] = TEMPERATURE - (Celsius[14]*100)

So you will have the integer part of your value in Celsius[14] and the decimal part in Celsius[16]. Celsius[15]=44 is your separator.

Now write to your memory at address 0
adr=0

I2CWRITE I2CDAT, I2CCLK, WriteDev , adr,[ Str Celsius\32]
PAUSE 10

Now if your hardware works properly, you should have stored in your memory the string and the values.

To recall them back:

adr=0
I2CREAD I2CDAT, I2CCLK, ReadDev , adr,[ Str Celsius\32]
Pause 10

At this point you send the array to your display

For A0=0 to 16
single byte (Celsius[A0]) can be sent to your display
Next A0

If you need to store more than on single value you have to increment your Address (adr) by a multiple of 32, and with two values you have filled one page (64 bytes)

Al.