'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
![]()
Bookmarks