Hier sind wie versprochen ein Bild und der fertige Code.
(Die Option vier Sensoren abzufragen und mit dem Taster durchzuschalten ist noch nicht ganz fertig aber sonst funktioniert es einwandfrei).

Schaltplan:
https://www.roboternetz.de/phpBB2/al...hp?pic_id=2485
Bild:
https://www.roboternetz.de/phpBB2/al...hp?pic_id=2484

Code:
$regfile = "M8def.dat"
$crystal = 4000000

'--------Segmente---------------
Config Portd = Output
Portd = 1                                                   'anfangs alles aus

'----------Anode Display---------
Config Portb = Output
Digit1 Alias Portb.1
Digit2 Alias Portb.2
Digit3 Alias Portb.3
Digit4 Alias Portb.4
Dp Alias Portb.5
Portb = 1                                                   'auch hier alles aus

'---------------Taster------------
Config Pind.7 = Input
Pind.7 = 1
'Taster Alias Pind.7

'---------AD-Wandler Config-------------
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

'--------Timer Config----------------
Dim Stelle As Byte                                          'Umschaltung zehner/einer/grad_zeichen
Stelle = 1                                                  'start mit Zehner

Config Timer0 = Timer , Prescale = 64
On Timer0 Timer_routine                                     'wird 4.000.000/64/256 ~ 244 mal pro Sekunde aufgerufen
Enable Timer0
Enable Interrupts

'Declare Sub Naechste

Dim Messung As Integer
Dim Wert_stelle(4) As Byte                                  'Variable für die einzelnen Stellen im Array(3)
Dim I As Byte                                               'Variable für Ausgabe der einzelnen Zeichen
Dim Temp As Integer                                         'Variable für Temperatur nach Berechnung
Dim Segmente(12) As Byte                                    'Variable für einzelne Segmente jeder Ziffer
Dim Messung2 As Integer                                     'für Minuszeichen
Dim Messpunkt As Byte
Messpunkt = 0


Const Offset = 150.5
Restore Segment_daten                                       'Tabelle der Zeichen laden

For I = 1 To 12
   Read Segmente(i)
Next I



 Wert_stelle(3) = 11                                        '°fest auf Stelle 3
 Wert_stelle(4) = 12                                        'minus fest auf Stelle 4



 Do

    'If Taster = 0 Then Gosub Naechste


   Messung = Getadc(messpunkt) * 64                         'Messung des ADC in Variable(Messung) speichern und mit 64 multiplizieren
   Messung = Messung / 101                                  'Messung mit 101 dividieren
   Messung = Messung - Offset
   Temp = Messung / 10                                      'für direkte Temperaturanzeige 150 abziehen                                     'ganzahlige Division, also 47 / 10 = 4
   Wert_stelle(1) = Temp + 1
   Temp = Messung Mod 10                                    'Mod ergibt den Rest der Division, also bei 47 / 10 ist Mod = 7
   Wert_stelle(2) = Temp + 1

   Messung2 = Getadc(messpunkt)
   If Messung2 < 237 Then Portb.0 = 1                       'wenn getadc(0) kleiner als 237 (0°) dann minus an
   If Messung2 > 237 Then Portb.0 = 0


   Waitms 1000                                              'hier vielleicht noch eine kleine Pause - um pendeln zwischen 2 temperaturen zu reduzieren

   Loop
   End


Timer_routine:

   Portb.stelle = 1                                         'Vorherige Stelle ausschalten
   Portd = 1                                                'zusätzlich alle Segmente aus
   Incr Stelle                                              'auf nächste Stelle umschalten
   If Stelle = 5 Then Stelle = 1                            'am Ende wieder zurück zur ersten Stelle
   Portd = Segmente(wert_stelle(stelle))                    'Neue Segmente ausgeben
   Portb.stelle = 0                                         'neue Stelle einschalten
   Return

'Sub Naechste
'Incr Messpunkt
'If Messpunkt = 2 Then Messpunkt = 0
'End Sub



Segment_daten:
'gemeinsame Anode:
'      0      1       2      3        4      5        6      7     8      9
'Data &H3F , &H6 , &H05B , &H04F , &H066 , &H06D , &H07D , &H7 , &H7F , &H6F
'gemeinsame kathode:
'      0      1       2      3      4      5     6      7     8      9        grad         minus
Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10 , &B10011100 , &B1011