QUOTE=aratti;
-------------------------------------------------------------------------
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)
I use this display NOW , and scroll a simple text , but a long text , what is writing in a 24FC512 menory . It has pins 1,2,3,4 and 7 to ground .
Just use the following code:
'set these variable
What doing this ?
WriteDev con %10100000
ReadDev con %10100001
Celsius VAR BYTE [32]
Fix text in the array
I use a long text ......with caps.letters only ( you can see this in my programe ).
Celsius[0]=84 = T
Celsius[1]=101 = e
Celsius[2]=109 = m
Celsius[3]=112 = p
Celsius[4]=101 = e
Celsius[5]=114 = r
Celsius[6]=97 = a
Celsius[7]=116 = t
Celsius[8]=117 =u
Celsius[9]=114 =r
Celsius[10]=32 = blank
Celsius[11]=105 = i
Celsius[12]=115 = s
Celsius[13]=32 = blank
Celsius[14]=0 this is not 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:
Look back in message , I must to use only this formula , only one .
I2Cread I2CDAT , I2CCLK , $A0 , J ,[caracter]
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)
Thank you !
Bookmarks