$regfile = "m16def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 16000000 $baud = 4800 Config Portd.5 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) Config Porta = Output Config Portb = Output Config Pind.2 = Input Config 1wire = Portb.7 'Ein Pin (PA0) wird als Eingang definiert Config Timer1 = Timer , Prescale = 256 On Timer1 Timer1_isr Const Timervorgabe = 64286 Enable Timer1 Enable Interrupts Dim I As Byte Dim Temperatur As Integer Dim Zehner As Integer Dim Einer As Integer Dim T As Integer Dim Ar(2) As Byte Dim Count as Integer Dim A(8) As Byte Dim B(8) As Byte Dim C(8) As Byte Dim D(8) As Byte Count = 0 A(1) = &H10 : A(2) = &HD4 : A(3) = &H37 : A(4) = &H9D : A(5) = &H01 : A(6) = &H08 : A(7) = &H00 : A(8) = &H97 '+ gekuerzt B(1) = &H10 : B(2) = &H4E : B(3) = &H22 : B(4) = &HB4 : B(5) = &H01 : B(6) = &H08 : B(7) = &H00 : B(8) = &HA4 'onboard C(1) = &H10 : C(2) = &H14 : C(3) = &H4B : C(4) = &H9D : C(5) = &H01 : C(6) = &H08 : C(7) = &H00 : C(8) = &H44 'original D(1) = &H10 : D(2) = &H0F : D(3) = &H1B : D(4) = &H9D : D(5) = &H01 : D(6) = &H08 : D(7) = &H00 : D(8) = &H72 'DQ cut Do 1wreset 'Reseten 1wwrite &HCC 'Skip Rom (darauffolgendes geht an alle) 1wwrite &H44 'Zeit zum Messen geben Waitus 20 1wreset Select Case Count Case 0 : 1wverify A(1) Case 1 : 1wverify B(1) Case 2 : 1wverify C(1) Case 3 : 1wverify D(1) End Select 1wwrite &HBE For I = 1 To 2 Ar(i) = 1wread() Next Temperatur = Ar(1) If Ar(2) > 0 Then Temperatur = 0 Else Shift Temperatur , Right End If Einer = Temperatur Mod 10 T = Temperatur / 10 Zehner = Abs(t) Loop End Timer1_isr: Timer1 = Timervorgabe If Pind.2 = 1 Then Count = Count + 1 End If If Count = 5 Then Count = 0 End If Portb = &B00000001 Select Case Zehner Case 0 : Porta = &B01001000 Case 1 : Porta = &B01111110 Case 2 : Porta = &B11010000 Case 3 : Porta = &B01110000 Case 4 : Porta = &B01100110 Case 5 : Porta = &B01100001 Case 6 : Porta = &B01000001 Case 7 : Porta = &B01111010 Case 8 : Porta = &B01000000 Case 9 : Porta = &B01100000 End Select Waitus 400 Portb = &B00000010 Select Case Einer Case 0 : Porta = &B01001000 Case 1 : Porta = &B01111110 Case 2 : Porta = &B11010000 Case 3 : Porta = &B01110000 Case 4 : Porta = &B01100110 Case 5 : Porta = &B01100001 Case 6 : Porta = &B01000001 Case 7 : Porta = &B01111010 Case 8 : Porta = &B01000000 Case 9 : Porta = &B01100000 End Select Waitus 400 Portb = &B00000000 Return