Is easy to have only one device on your 1wire bus - no identification problem and only two function used. It is also a good solution to read the device's ID - required when you use multiple devices on your 1wire bus. So, this is what we do now - reading temperature and the ID.
Click on image to zoom
The code is based mainly on two important libraries: 1_wire.jal and ds18b20.jal - see header inside for authors.
-- Read sensor temperature DS18B20 in Celsius degree.-- It is about an unique device on 1wire bus-- Copyright Vasile Guta Ciucur-- New BSD Licenseinclude freejalduino4include delayalias d1w_bus_in is D11alias d1w_bus_out is D11_directioninclude 1_wire-- LCD IO definitionalias lcd_rs is D9 -- LCD command/data select.alias lcd_en is D8 -- LCD data triggeralias lcd_rs_direction is D9_directionalias lcd_en_direction is D8_directionalias lcd_d4 is D3alias lcd_d5 is D4alias lcd_d6 is D5alias lcd_d7 is D6alias lcd_d4_direction is D3_directionalias lcd_d5_direction is D4_directionalias lcd_d6_direction is D5_directionalias lcd_d7_direction is D6_directionconst byte LCD_ROWS = 2 -- 2 linesconst byte LCD_CHARS = 16 -- 16 chars per lineenable_digital_io()lcd_rs_direction = outputlcd_en_direction = outputlcd_d4_direction = outputlcd_d5_direction = outputlcd_d6_direction = outputlcd_d7_direction = output-- LED IO definition - Uncomment the lines if you want tp use leds for debug--alias led is D13--alias led_direction is D13_direction--alias led2 is D2--alias led2_direction is D2_direction--led_direction = output--led2_direction = output--led = low--led2 = lowinclude lcd_hd44780_4 -- LCD library with 4 data linesinclude print -- formatted output libraryinclude ds18b20const byte str1[] = "Temp.= "lcd_init() -- initialize LCDprint_string(lcd, str1)var bit signvar byte units, decimalsvar byte iforever loop -- loop forever convert_18B20 s_temp_18B20_CRC(units, decimals, sign) lcd_cursor_position(0,7) if sign == 1 then lcd = "-" end if print_byte_dec(lcd, units) lcd = "." print_byte_dec(lcd, decimals) lcd = "C" -- read the device's ID and print it s_read_rom_18B20 lcd_cursor_position(1,0) for 8 using i loop print_byte_hex(lcd, rom_ID[i]) end loopend loop--