$regfile = "m8def.dat" $crystal = 4000000 $baud = 19200 $hwstack = 32 $swstack = 10 $framesize = 40 Ddrd = &B01110110 Ddrc = &B00000000 Ddrb = &B11111111 Admux = &B11000000 Adcsra = &B11100010 Portd = &B11111101 Portc = &B11111100 Portb = &B11111111 Mcucr = &B00000101 Gicr = &B11000000 Sreg.7 = 1 'Config Lcdpin = Pin, Db0 = Portb.0 Db1 = Portb.1 Db2 = Portb.2, Db3 =Portb.3, Db4 = Portb.4, Db5 = Portb.5, Db6 = Portb.6, Db7 =Portb.7, E = Portd.6 , Rs = Portd.5 , Config Lcdpin = Pin , Port = Portb , E = Portd.6 , Rs = Portd.5 On Int0 Onmenue1 'Interrupt-Routine für INT0 festlegen On Int1 Onmenue2 Dim Temp As Byte Dim Curch As Byte Dim Lb1 As Word Dim Hb1 As Word Dim Lb2 As Word Dim Hb2 As Word Dim A As Word Dim B As Word Dim C As Word Dim D As Word Dim E As Word Dim F As Word Dim G As Word Dim H As Word Dim I As Word Dim J As Word Dim X As Word Dim Y As Word Config Lcd = 20 * 4 Do E = 60 F = 20 Schleife1: B = 206 'Steigung 1° = 2,06 bit mehr und da man keine Kommastellen angeben kann * 100 C = 56300 'Offset wert bei 0° hat die Schaltung 563 Bit * 100 für die Rechnung Incr Curch If Curch > 1 Then Curch = 0 Temp = Admux And &B11110000 Admux = Temp Or Curch Lb1 = Adcl 'Abfrage des Lowbits Hb1 = Adch 'Abfrage des Highbits Hb1 = Hb1 And &B00000011 'Highbit mit 3 und verknüpfen um eventuele Störsignale ich ein zu Beziehen Hb1 = Hb1 * 256 'High bit * 256 um 1023 bit zu bekommen A = Lb1 + Hb1 'Variable A = Gesamt bit High- und Lowbit D = A * 100 'Umwandlung von A für die Berechnung der Temperatur Y = D - C 'Bitwert der Temperatur - Offset X = Y / B Udr = X Incr Curch If Curch < 1 Then Curch = 1 Temp = Admux And &B11110000 Admux = Temp Or Curch Lb2 = Adcl Hb2 = Adch 'Abfrage des Highbits Hb2 = Hb2 And &B00000011 'Highbit mit 3 und verknüpfen um eventuele Störsignale ich ein zu Beziehen Hb2 = Hb2 * 256 'High bit * 256 um 1023 bit zu bekommen G = Lb2 + Hb2 H = G * 100 I = H - C 'Resultierenden Wert Y durch die Steigung B X= Temperatur J = I / B Udr = J Cls Lcd "Mentzer Elektronic" Waitms 500 Cls Locate 1 , 1 : Lcd "Temp. Agregat:" Locate 1 , 17 : Lcd X Locate 2 , 1 : Lcd "Temp Kuehlhaus:" Locate 2 , 17 : Lcd J Locate 3 , 1 : Lcd "Luefter ein:" Locate 3 , 17 : Lcd E Locate 4 , 1 : Lcd "Luefter aus:" Locate 4 , 17 : Lcd F Waitms 500 Goto Schleife1 Loop Onmenue1: Cls Locate 1 , 1 : Lcd "Luefter ein:" Locate 2 , 11 : Lcd E If Portd.4 = 0 Then E = E - 5 End If Cls Locate 1 , 1 : Lcd "Luefter ein:" Locate 2 , 11 : Lcd E Waitms 500 Return Onmenue2: Cls Locate 1 , 1 : Lcd "Luefter aus:" Locate 2 , 11 : Lcd F If Portd.4 = 0 Then F = F + 5 End If Cls Locate 1 , 1 : Lcd "Luefter aus:" Locate 2 , 11 : Lcd F Waitms 500 Return End