I'm sure you would get a better result if you actually waited for the ds18b20 to perform the measurement

Code:
'Get and display the temperature
GIE = 0
OWOUT DQ, 1, [$CC, $44]                 ' Start temperature conversion
pause 800

OWOUT DQ, 1, [$CC, $BE]                 ' Read the temperature
OWIN DQ, 0, [temperature.LOWBYTE, temperature.HIGHBYTE]
GIE = 1
temperature = temperature */ 1600 

lcdout $FE,$D4+0,"TEMP ",dec(temperature / 100),$DF,"C"