Code:
$regfile = "m8def.dat"
$crystal = 14745600 'Externes Quarz 14,7456 Mhz
'Achtung: damit der ext. Quarz aktiv wird => die Fusebits entsprechend einstellen.
'Extern Cristal , bei mir alle Bits = 111 111
$baud = 9600
Match_rom Alias &H55
Skip_rom Alias &HCC
Read_scratchpad Alias &HBE
Write_scratchpad Alias &H4E
Copy_scratchpad Alias &H48
Start_conversion Alias &H44
' Pin für 1wire Schnittstelle festlegen. => DS1820 am Port C.5
Config 1wire = Portc.5
Dim Ds1820id(32) As Byte
Dim Sc(9) As Byte '????
Dim T As Integer
Dim I As Byte
Dim Id As Byte
'/// 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
'Die Adresse aller meiner DS1820 die ich vorher ausgelesen habe:
Restore Sensor_ids
For I = 1 To 32
Read Ds1820id(i)
Next I
1wreset
1wwrite Skip_rom
1wwrite Start_conversion 'Alle angeschlossenen DS1820 zum Messen veranlassen
Waitms 500 'Ausgabe alle 0,5 Sekunden
Do
For Id = 1 To 25 Step 8 'ID für alle 4 DS1820 1,9,17,25
Incr I
1wreset '1Wire Reseten
1wwrite &H55 'MATCHROM=>Adress.den DS1820 anhand des ROM Inhaltes
1wwrite Ds1820id(id) , 8 '8 Byte ID wird uebertragen
1wwrite &HBE 'READ SCATCHPAD => Liest alle Bytes des SP Memorys
Sc(1) = 1wread(9)
T = Makeint(sc(1) , Sc(2)) 'komprimiert zwei Bytes in die Integervariable T
Shift T , Right 'Die Nachkommastelle entfernen
Locate I , 11 'Temperatur in ganzen Grad ausgeben
Lcd "T" ; I ; "=" ; T ; " C" ' Anzeige erfolgt so: T1=23 C
Next Id
I = 0
1wreset
1wwrite Skip_rom
1wwrite Start_conversion 'Alle angeschlossenen DS1820 zum Messen veranlassen
Waitms 500 'Ausgabe alle 0,5 Sekunden
Loop
End
Sensor_ids:
Data &H10 , &H6A , &HE8 , &H5F , &H01 , &H08 , &H00 , &H8C
Data &H10 , &H8B , &H23 , &H25 , &H01 , &H08 , &H00 , &H73
Data &H10 , &H7B , &HD6 , &H60 , &H01 , &H08 , &H00 , &H14
Data &H10 , &H13 , &HFD , &H5F , &H01 , &H08 , &H00 , &H2C
Kompiliert ok, ist aber nicht getestet, da ich deine Hardware nicht habe.
Lesezeichen