Ich habe dir deinen Code mal etwas umgestellt:

Code:
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Portb.0 = Output
Config 1wire = Porta.6
Dim Rom1 As Integer
Dim Temp As Integer
Wait 1
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
Cls
Locate 1 , 1
Lcd "*****Lipo-Koffer****"
Do
   1wreset
   1wwrite &HCC
   1wwrite &H44
   'Ddra.6 = 1
   Waitms 800
   'Ddra.6 = 0
   1wreset
   1wwrite &HCC
   1wwrite &HBE
   Rom1 = 1wread(2)
   1wreset
   Temp = Rom1 / 2
   Locate 2 , 1
   Lcd "Temperatur = " ; Temp
   Locate 2 , 17
   Lcd "Grad"
   If Temp < 32 Then
      Locate 3 , 1
      Lcd "*******heizen*******"
      Portb.0 = 1
   Elseif Temp > 35 Then
      Locate 3 , 1
      Lcd "****Temperatur ok***"
      Portb.0 = 0
   End If
Loop
End
Einige Fragen noch:

Warum machst du das: DDRA.6=1 : Waitms 800 : DDRA.6=0 ?
Funktioniert das wirklich Rom1 = 1wread(1) ? Nur ein Byte?

Gruß

Rolf