Hallo,
jetzt bin ich endlich wieder da...
Hier also mein Code für 5 Sensoren:
Code:$regfile = "m32def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.4 , Db7 = Portd.3 , E = Portb.7 , Rs = Portb.6 Config Lcd = 16 * 2 Config Lcdbus = 4 Cursor Off Cls Config 1wire = Portc.5 Dim Timer As Word Timer = 55800 Config Timer1 = Timer , Prescale = 1024 Enable Timer1 On Timer1 Sekundentakt Enable Interrupts Timer1 = Timer Dim X As Byte : X = 1 Dim Tempsensor1(8) As Byte Dim Tempsensor2(8) As Byte Dim Tempsensor3(8) As Byte Dim Tempsensor4(8) As Byte Dim Tempsensor5(8) As Byte Dim Ar1(9) As Byte Dim Ar2(9) As Byte Dim Ar3(9) As Byte Dim Ar4(9) As Byte Dim Ar5(9) As Byte Dim Temp1 As Single Dim Temp2 As Single Dim Temp3 As Single Dim Temp4 As Single Dim Temp5 As Single Dim Tmp1 As Byte Dim Tmp2 As Byte Dim Tmp3 As Byte Dim Tmp4 As Byte Dim Tmp5 As Byte Dim T1 As Integer Dim T2 As Integer Dim T3 As Integer Dim T4 As Integer Dim T5 As Integer Dim T6 As Integer Dim T7 As Integer Dim T8 As Integer Dim T9 As Integer Dim T10 As Integer Tempsensor1(1) = 1wsearchfirst() Tempsensor2(1) = 1wsearchnext() Tempsensor3(1) = 1wsearchnext() Tempsensor4(1) = 1wsearchnext() Tempsensor5(1) = 1wsearchnext() Do Locate 1 , 1 : Lcd X 'Debug :-) Locate 1 , 4 : Lcd Fusing(temp1 , "##.#") Locate 1 , 10 : Lcd Fusing(temp2 , "##.#") Locate 2 , 1 : Lcd Fusing(temp3 , "##.#") Locate 2 , 7 : Lcd Fusing(temp4 , "##.#") Locate 2 , 13 : Lcd Fusing(temp5 , "##.#") Wait 1 'Test Cls 'Test Loop Sekundentakt: Timer1 = Timer Incr X If X = 2 Then 'Waitms 500 1wreset 1wwrite &H55 1wwrite Tempsensor1(1) , 8 1wwrite &H44 End If If X = 3 Then 'Waitms 300 1wreset 1wwrite &H55 1wwrite Tempsensor1(1) , 8 1wwrite &HBE Ar1(1) = 1wread(9) 1wreset Tmp1 = Ar1(1) And 1 If Tmp1 = 1 Then Decr Ar1(1) T1 = Makeint(ar1(1) , Ar1(2)) T1 = T1 * 50 T1 = T1 - 25 T2 = Ar1(8) - Ar1(7) T2 = T2 * 100 T2 = T2 / Ar1(8) T1 = T1 + T2 T1 = T1 / 10 Temp1 = T1 / 10 End If If X = 4 Then 'Waitms 500 1wreset 1wwrite &H55 1wwrite Tempsensor2(1) , 8 1wwrite &H44 End If If X = 5 Then 'Waitms 300 1wreset 1wwrite &H55 1wwrite Tempsensor2(1) , 8 1wwrite &HBE Ar2(1) = 1wread(9) 1wreset Tmp2 = Ar2(1) And 1 If Tmp2 = 1 Then Decr Ar2(1) T3 = Makeint(ar2(1) , Ar2(2)) T3 = T3 * 50 T3 = T3 - 25 T4 = Ar2(8) - Ar2(7) T4 = T4 * 100 T4 = T4 / Ar2(8) T3 = T3 + T4 T3 = T3 / 10 Temp2 = T3 / 10 End If If X = 6 Then 'Waitms 500 1wreset 1wwrite &H55 1wwrite Tempsensor3(1) , 8 1wwrite &H44 End If If X = 7 Then 'Waitms 300 1wreset 1wwrite &H55 1wwrite Tempsensor3(1) , 8 1wwrite &HBE Ar3(1) = 1wread(9) 1wreset Tmp3 = Ar3(1) And 1 If Tmp3 = 1 Then Decr Ar3(1) T5 = Makeint(ar3(1) , Ar3(2)) T5 = T5 * 50 T5 = T5 - 25 T6 = Ar3(8) - Ar3(7) T6 = T6 * 100 T6 = T6 / Ar3(8) T5 = T5 + T6 T5 = T5 / 10 Temp3 = T5 / 10 End If If X = 8 Then 'Waitms 500 1wreset 1wwrite &H55 1wwrite Tempsensor4(1) , 8 1wwrite &H44 End If If X = 9 Then 'Waitms 300 1wreset 1wwrite &H55 1wwrite Tempsensor4(1) , 8 1wwrite &HBE Ar4(1) = 1wread(9) 1wreset Tmp4 = Ar4(1) And 1 If Tmp4 = 1 Then Decr Ar4(1) T7 = Makeint(ar4(1) , Ar4(2)) T7 = T7 * 50 T7 = T7 - 25 T8 = Ar4(8) - Ar4(7) T8 = T8 * 100 T8 = T8 / Ar4(8) T7 = T7 + T8 T7 = T7 / 10 Temp4 = T7 / 10 End If If X = 10 Then 'Waitms 500 1wreset 1wwrite &H55 1wwrite Tempsensor5(1) , 8 1wwrite &H44 End If If X = 11 Then 'Waitms 300 1wreset 1wwrite &H55 1wwrite Tempsensor5(1) , 8 1wwrite &HBE Ar5(1) = 1wread(9) 1wreset Tmp5 = Ar5(1) And 1 If Tmp5 = 1 Then Decr Ar5(1) T9 = Makeint(ar5(1) , Ar5(2)) T9 = T9 * 50 T9 = T9 - 25 T10 = Ar5(8) - Ar5(7) T10 = T10 * 100 T10 = T10 / Ar5(8) T9 = T9 + T10 T9 = T9 / 10 Temp5 = T9 / 10 X = 1 End If Return







Zitieren

Lesezeichen