Hallo Papsi!
Lade mal dieses Programm und pass es an.
Das liest dir alle ID aus und zeigt sie am LCD an.

Code:
'///////////////////////////////////////////////////////////////////////////////
' Funktion:
' Liest die Adressen von angeschlossenen DS1820 aus und zeigt sie am LCD an.
' Mit jeweils 20s Pause dazwischen.
'///////////////////////////////////////////////////////////////////////////////
$regfile = "m8def.dat"
$crystal = 14745600           'Externes Quarz   14,7456 Mhz
'Achtung: damit der ext. Quarz aktiv wird => die Fusebits entsprechend einstellen.
'Extern Cristal , Alle Bits = 111 111
$baud = 9600

'-------------------------------------------------------------------------------
'/// Definitionen //////////////////////////////////////////////////////////////

'/// LCD- DISPLAY 4x20
'LCD im 4Bit I/O Mode
Config Lcd = 20 * 4
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4
Config Lcdpin = Pin , Db7 = Portd.5 , E = Portd.7 , Rs = Portd.6
Cursor Off Noblink
Cls

'Pin für 1wire Schnittstelle festlegen
Config 1wire = Portc.5

Dim Dsid(8) As Byte           'Es werden mindestens 8Bytes für die ID benötigt
Dim I As Byte                 'Für die Anzahl der Senseoren
Dim Nr As Byte

Nr = 1
Cls

Dsid(1) = 1wsearchfirst()

Locate 1 , 1 : Lcd "DS1820 Nr " ; Nr : Nr = Nr + 1
Locate 2 , 1
For I = 1 To 8
 Lcd Hex(dsid(i))
Next

Wait 20  ' Das reicht zum abschreiben

'Dsid(1) = 1wsearchnext()
Do
 Dsid(1) = 1wsearchnext()
 'Wenn kein Fehler, dann ausgeben

 If Err = 0 Then
  Locate 1 , 1 : Lcd "DS1820 Nr " ; Nr : Nr = Nr + 1
  Locate 2 , 1
  For I = 1 To 8
   Lcd Hex(dsid(i))
  Next
  Wait 15
 End If
Loop Until Err = 1


Do
 Waitms 100
Loop

End