Hello Captain Stern. This is a sample program for DS 2436 voltage and temp. monitor device. I hope it will help you
Best Regards
Vladimir

File...... DS2436 TEST1 modified.PBP
' Purpose... Reads information from a Dallas DS2436

' -----[ I/O Definitions ]------------------------------------------------------
'
OWpin CON 0
'DEFINE DEBUG_REG PORTB ' FOR DEBUG COMMAND
'DEFINE DEBUG_BIT 1 ' FOR DEBUG COMMAND
'DEFINE DEBUG_BAUD 2400 ' FOR DEBUG COMMAND
'DEFINE DEBUG_MODE 0 ' FOR DEBUG COMMAND

' -----[ Constants ]------------------------------------------------------------
'
' 1-Wire Support
'
ReadROM CON $33 ' read ID, serial num, CRC
MatchROM CON $55 ' look for specific device
SkipROM CON $CC ' skip rom (one device)
SearchROM CON $F0 ' search

OW_FERst CON %0001 ' Front-End Reset
OW_BERst CON %0010 ' Back-End Reset
OW_BitMode CON %0100
OW_HighSpd CON %1000

' DS2346 control
'
ConvertV CON $B4 ' convert the voltage
ConvertT CON $D2 ' convert the temperature
ReadRegister CON $B2 ' read page 4 and page 5 of DS2436

NoDevice CON %0 ' no device present
'DegSym CON 176

' -----[ Variables ]------------------------------------------------------------
'
voltage VAR Word
vLo VAR voltage.BYTE0
vHi VAR voltage.BYTE1
temp VAR Word
tLo VAR temp.BYTE0
tHi VAR temp.BYTE1
romData VAR Word(8)

devCheck VAR Word

' -----[ EEPROM Data ]----------------------------------------------------------
'
' -----[ Initialization ]-------------------------------------------------------
'
Initialize:
output 5
lcdout $fe, 1
portb.5 = 1
pause 1300 ' allow LCD screen to clear
portb.5 = 0


GOSUB Device_Check ' look for device
' debug bin devCheck ' test no 1-wire device
IF (devCheck <> NoDevice) THEN Main

No_Device_Found:
lcdout $fe, 1, "No 1-wire device"
lcdout $fe, $c0, "Insert device"
end

' -----[ Main Code ]------------------------------------------------------------
'
Main:

GOSUB Get_Volt ' voltage conversion
GOSUB Get_Temp ' temperature conversion

testValue1: ' voltage = $01E3 ' uncomment to test without DS2436
testValue2: ' temp = $1910 ' uncomment to test without DS2436

lcdout $fe, 1, "Voltage:" ,Dec voltage/100,".", DEC1 voltage/10,"v"
lcdout $fe, $c0, "Temperature:",DEC tHi, "C"

PAUSE 600 ' delay for a bit....
' debug dec voltage
GOTO Main

END
' -----[ Subroutines ]----------------------------------------------------------
'
'DS2436 Page 4 Memory is read using the Read_Registers [$B2] command
'addr purpose
' $60 Temp LSB (decimal degrees C)
' $61 Temp MSB (integer degrees C)
' $62 status (BIT0 shows T conversion status, Bit 3 shows V status)
' $63 status
' $77 Voltage LSB
' $78 Voltage MSB

Get_Volt:
OWOUT OWpin,OW_FERst,[SkipROM,ConvertV] ' send voltage conversion command
PAUSE 15 ' give it some time (could wait until bit3 at $62 equals 0)
OWOUT OWpin,OW_FERst,[SkipROM,ReadRegister, $77] ' lo byte voltage
OWIN OWpin,OW_BERst,[vLo]
OWOUT OWpin,OW_FERst,[SkipROM,ReadRegister, $78] ' hi byte voltage
OWIN OWpin,OW_BERst,[vHi]
RETURN

Get_Temp:
OWOUT OWpin,OW_FERst,[SkipROM,ConvertT] ' send voltage conversion command
PAUSE 15 ' give it some time (could wait until bit1 at $62 equals 0)
OWOUT OWpin,OW_FERst,[SkipROM,ReadRegister, $60] ' lo byte temp
OWIN OWpin,OW_BERst,[tLo]
OWOUT OWpin,OW_FERst,[SkipROM,ReadRegister, $61] ' hi byte temp
OWIN OWpin,OW_BERst,[tHi]
RETURN


' This subroutine checks to see if any 1-Wire devices are present on the
' bus. It does NOT search for ROM codes
Device_Check:
devCheck = 0
OWOUT OWpin,OW_FERst,[SearchROM] ' reset and start search
OWIN OWpin,OW_BitMode,[devCheck.BIT1,devCheck.BIT0]
RETURN