
Parallax, Inc. • BS2p “Plus Pack” (#45184) • 10/2001
Page 37
ReadROM CON $33 ' read ID, serial num, CRC
SearchROM CON $F0 ' search
NoDevice CON %11 ' no device present
NamesPgm CON 1 ' names are stored in slot 1
' -----[ Variables ]------------------------------------------------------------
'
idx VAR Byte ' loop counter
romData VAR Byte(8) ' ROM data from device
devType VAR romData
devCheck VAR Nib ' device check return ocde
addr VAR Word ' address of string pointer
strPtr VAR Word ' string pointer (device address)
char VAR Byte ' character for LCD
' -----[ Initialization ]----------- --------------------------------------------
'
Initialize:
PAUSE 500 ' let the LCD settle
LCDCMD LCDpin,%00110000 : PAUSE 5 ' 8 -bit mode
LCDCMD LCDpin,%00110000 : PAUSE 0
LCDCMD LCDpin,%00110000 : PAU SE 0
LCDCMD LCDpin,%00100000 : PAUSE 0 ' 4 -bit mode
LCDCMD LCDpin,%00101000 : PAUSE 0 ' 2 -line mode
LCDCMD LCDpin,%00001100 : PAUSE 0 ' no crsr, no blink
LCDCMD LCDpin,%00000110 ' inc crsr, no disp shift
' -----[ Main Code ]------------------------------------------------------------
'
Main:
LCDOUT LCDpin,ClrLCD,["1 -Wire"] ' splash screen
LCDOUT LCDpin,(Line2 + 6),["Identifier"]
PAUSE 2500
GOSUB Device_Check ' look for device
IF (devCheck <> NoDevice) THEN Get_ROM
No_Device_Found:
LCDOUT LCDpin,ClrLCD,["No 1-Wire device."]
END
Get_ROM:
OWOUT OWpin,OW_FERst,[ReadROM] ' send Read ROM command
OWIN OWpin,OW_BERst,[STR romData\8] ' read serial number & CRC
IF (romData(7) < $FF) THEN Show_Device
LCDOUT LCDpin,ClrLCD,["Bad device?"]
END
Show_Device:
LCDCMD LCDpin,ClrLCD
GOSUB Display_Device_Type
' serial number
LCDCMD LCDpin,Line2
FOR idx = 6 TO 1
LCDOUT LCDpin,NoCmd,[HEX2 romData(idx)]
NEXT