Sorry zmyliłeś mnie tym koden na 1820(18s20).
DS18B20 w pierwszych dwu bajtach temperatura zapisana jest na 12bitah (11 + bit znaku), a w 1820 na dziewięciu (8+1 znaku).
50h i 05h to 0550h (0000 0101 0101 0000binarnie)
jeżeli przesuniesz 4 bity w prawo otrzymasz 0000 0000 0101 0101 czyli 0055h czyli 85stC (gotowe stopnie).
A w mlodszym niblu mlodszego bajtu masz wartość po przecinku, ale w w 1/16 stopnia, skoro używasz BASCOMa nie powinieneś mieć problemu z uzyskaniem rozdielczości 0,1 stC :
maksymalna wartość to 1111b 0Fh czyli 15
X=15
1)x= x*10 = 150
2)x=x/16 = 9 - tak obetnie BASCOM
i masz gotową wartość dziesiątych stopnia.
W DS18B20 jest jeszcze bajt konfiguracji w twojej tablicy ds(5), aby mieć maksymalną rozdzielczość 1/61 (0,0625stC) ten baj musisz ustawić na 01111111b tak jest po włączeniu zasilania , aha ! przy 12-bitowej rozdielczości czas konwersji (pomiaru) trwa 750ms i na tyle czasu musisz dać spokój DSowi.
Pamiętaj, że zapisując i odczutując scratchpad mu wysyłać lub odbierać wszystkie 9 bajtów.
A najlepiej zapoznać się z orginalną dokumentacją :
http://para.maxim-ic.com/compare.asp?Fam=Temp...438,119439,119440,119441,119442,119443,119444