I updated the code with things I have learned from internet but it doesn't work yet.
Code:@__CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L @__CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H @__CONFIG _CONFIG2L, _PWRT_OFF_2L & _BOR_ON_2L & _BORV_3_2L & _VREGEN_ON_2L @__CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H @__CONFIG _CONFIG3H, _CCP2MX_ON_3H & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_OFF_3H @__CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L 'LCD DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 1 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 2 'I2C CMCON = 7 ADCON1 = 7 SCL VAR PORTA.2 SDA VAR PORTA.3 i2c_read CON 1 'R/W configuration bit (1 = read) i2c_write CON 0 'R/W configuration bit (0 = write) i2c_out VAR BYTE 'data to sent over I2C bus i2c_in VAR BYTE[2] 'data received over I2C bus i2c_ack VAR BIT 'acknowledgement bit temp VAR WORD GOSUB Config_Register 'Set Configuration GOSUB Start_Convert 'Start continuous conversion TOP: PAUSE 2000 GOSUB Read_Temp i2c_in[2] = i2c_in[1] >> 3 temp = (i2c_in[1]*1000) LCDout $FE,1,#temp GOTO TOP Config_Register: GOSUB I2C_START i2c_out = %10010000 GOSUB I2C_TX i2c_out = $AC GOSUB I2C_TX i2c_out = $00 GOSUB I2C_TX GOSUB I2C_STOP RETURN Start_Convert: GOSUB I2C_START i2c_out = %10010000 GOSUB I2C_TX i2c_out = $EE GOSUB I2C_TX GOSUB I2C_STOP RETURN Read_Temp: GOSUB I2C_START i2c_out = %10010000 GOSUB I2C_TX i2c_out = $AA GOSUB I2C_TX GOSUB I2C_START i2c_out = %10010001 GOSUB I2C_TX GOSUB I2C_RX GOSUB I2C_STOP RETURN I2C_START: HIGH SDA HIGH SCL LOW SDA LOW SCL RETURN I2C_STOP: LOW SDA HIGH SCL HIGH SDA PAUSE 1 RETURN I2C_RX: SHIFTIN SDA,SCL,0,[i2c_in[0]] SHIFTOUT SDA,SCL,1,[%0\1] SHIFTIN SDA,SCL,0,[i2c_in[1]] SHIFTOUT SDA,SCL,1,[%1\1] RETURN I2C_TX: SHIFTOUT SDA,SCL,1,[i2c_out] SHIFTIN SDA,SCL,0,[i2c_ack\1] RETURN




Bookmarks