Einen Wert grösser 127.5 kann der DS1621 nicht ausgeben, denn darüber ist alles negativ (Bit 7 gesetzt), dann stimmt nur die Umrechnung nicht !

Wenn man eine Temperatur vom 1621 haben will, muss er erst eine Messung druchführen, diese startet man mit dem Kommando $EE, nach diesem wird einmal gemessen.
Der 1621 braucht mind. 400ms um zu messen, wenn man vorher ausliest, geht das zwar, aber es kommt der Wert der letzten Messung raus, oder -96 falls noch garnicht gemessen wurde.

D.H. also, dass vor jedem Auslesen eine Messung gestartet werden muss, anschliessend mind. 400ms warten, dann erst den Wert lesen.

Alternativ kann man den 1621 auf Kontinuierliche Messung umstellen, ein Beispiel ist in seinem Datenblatt enthalten.