'define LOADER_USED 1
ADCON1 = 7 ' A/D off, all digital

ASM
@ DEVICE PIC16F877, HS_OSC, WDT_OFF, PWRT_ON, BOD_ON, LVP_OFF, CPD_OFF, WRT_OFF, DEBUG_OFF, PROTECT_OFF
ENDASM

define OSC 20

DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
DEFINE LCD_LINES 4
define LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50

DEFINE I2C_SLOW 1
DEFINE I2C_HOLD 1
I2CSCL VAR PortD.1
SDAISW1 VAR PortC.2

LOCGPIO CON $00
LOWWORD CON %0000000000000000

I2CCTRL VAR BYTE
I2CLOCB VAR BYTE
I2CWORD VAR WORD
CTRLIOW CON %01000000
CTRLIOR CON %01000001

GOTO START ' Bypass subroutines

'--------------------------- SUB-ROUTINES ----------------------------

RDISW1:
I2CREAD SDAISW1,I2CSCL,I2CCTRL,I2CLOCB,[I2CWORD]
PAUSE 12
RETURN

'-------------------------- MAIN PROGRAM -----------------------------

START:
PAUSE 2000
LCDOUT $FE,1,"Program start"

CYCLE:
I2CCTRL = CTRLIOW
I2CLOCB = LOCGPIO
I2CWORD = LOWWORD
GOSUB RDISW1
I2CCTRL = CTRLIOR
GOSUB RDISW1
LCDOUT $FE,$94,BIN16 I2CWORD
GOTO CYCLE

END


Circuit coming up.

Robert