' Name : I2C.pbp ' Compiler : PICBASIC PRO Compiler 2.6 ' Assembler : PM or MPASM ' Target PIC : 12F, 16F, 18F ' Hardware : Non specific ' Oscillator : 4MHz external crystal or resonator ' Keywords : I2CREAD, I2CWRITE, SEROUT ' Description : PICBASIC PRO program to demonstrate I2CREAD and I2WRITE Commands. ' Writes to the first 16 locations of an external serial EEPROM, then reads first ' 16 locations back and sends via serial out repeatedly. For EEPROMS with byte-sized ' address. ' Include "modedefs.bas" ' Include serial modes SO Con 0 ' Define serial output pin DPIN Var PORTA.0 ' I2C data pin CPIN Var PORTA.1 ' I2C clock pin B0 Var byte B1 Var byte B2 Var byte For B0 = 0 To 15 ' Loop 16 times I2CWRITE DPIN,CPIN,$A0,B0,[B0] ' Write each location's address to itself Pause 10 ' Delay 10ms after each write Next B0 mainloop: For B0 = 0 To 15 step 2 ' Loop 8 times I2CREAD DPIN,CPIN,$A0,B0,[B1,B2] ' Read 2 locations in a row Serout SO,N2400,[#B1," ",#B2," "] ' Print 2 locations Next B0 Serout SO,N2400,[10] ' Print linefeed Goto mainloop End