Hi,

I have a code that works great with the DS1820, however when i change to a DS18S20, the only thing that i get is 127.68ºC.

I allready made a search on the forum, however all the resaults are exactly the same as my code.

I have 2 DS18S20, and the show exactly the same value.

Can somebody help me;

Here is my code.
Code:
count_remain Var Byte			' Count remaining
count_per_c  Var Byte			' Count per degree C
temperature  Var Word



'                              REGISTOS PINOUT 1 = IN; 0 = OUT
' ===========================================================
        '76543210
TRISA = %11111111 
TRISB = %00001111 
TRISC = %00100000 
TRISD = %00000000 
TRISE = %00000000
ADCON1 = %00001110
ADCON0 = %00000000

'                              NOMES PINOUT
' ===========================================================
LED  VAR PORTC.3
DQ   VAR PORTD.0

'                              DEFENIÇÕES
' ===========================================================
 
   DEFINE LCD_DREG PORTB       ' LCD Data bits on PORTB
   DEFINE LCD_DBIT 4           ' PORTB starting address
   DEFINE LCD_RSREG PORTB      ' LCD RS bit on PORTB
   DEFINE LCD_RSBIT 3          ' LCD RS bit address
   DEFINE LCD_EREG PORTB       ' LCD E bit on PORTB
   DEFINE LCD_EBIT 2           ' LCD E bit address
   DEFINE LCD_BITS 4           ' LCD in 4-bit mode
   DEFINE LCD_LINES 2          ' LCD has 2 rows
   DEFINE LCD_COMMANDUS 2000   ' Set command delay time in us
   DEFINE LCD_DATAUS 50        ' Set data delay time in us

'                             INICIO PROGRAMA
' ===========================================================

Main:
   gosub Read_Sensor_Amp
   pause 100
goto Main

'                        LEITURA SENSOR AMPLIFICADOR
' ===========================================================

Read_Sensor_Amp:
OWOut DQ,1,[$CC,$44]
Waitloop: OWIn DQ,4,[count_remain]
If count_remain = 0 Then Waitloop
 OWOut DQ,1,[$CC,$BE]
 OWIn DQ,0,[temperature.LOWBYTE,temperature.HIGHBYTE,Skip 4,count_remain,count_per_c]
 temperature = (((temperature >> 1) * 100) - 25) + (((count_per_c - count_remain) * 100)/count_per_c)
Lcdout $fe, 1, " Temp. Amplificador "
Lcdout $fe, $C0,"      ",DEC (temperature/100),".",DEC2 temperature," C"
return
end