ME Labs, Inc.
719-520-5323
 
Home:
  Developer Resources:

Programming Clues
    Sample Programs
   
    PICBASIC PRO™
Compiler Manual
    PICBASIC™ Compiler
Manual
    Serin2/Serout2 Modes
    ASCII Character Set
    Number Conversion
    Floating Point
Routines
    PBP Debug Monitor
    Articles and Tutorials

Hardware Clues
    Parts / Vendor List
    PICPROTO™ Boards
    LAB-X1 Docs
    LAB-X2 Docs
    LAB-X20 Docs
    LAB-X3 Docs
    LAB-X4 Docs
    LAB-XUSB Docs
    LAB-XT Docs
     
 

ME Labs, Inc. | 1-719-520-5323 | Example Program - I2CX4.pbp

PICBASIC PRO program to read and write to I2C SEEPROMs Write to the first 16 locations of an external serial EEPROM, and then read first 16 locations back and send to LCD repeatedly. Note this example is for SEEPROMs with byte-sized address.
' Name        : I2CX4.pbp
' Compiler    : PICBASIC PRO Compiler 2.6
' Assembler   : PM or MPASM
' Target PIC  : 8-pin PIC12F675 or similar types
' Hardware    : Lab-X4 board
' Oscillator  : 4MHz internal
' Keywords    : I2CWRITE, I2CREAD, SEROUT
' Description : PICBASIC PRO program to read and write to I2C SEEPROMs
' Write to the first 16 locations of an external serial EEPROM, and then
' read first 16 locations back and send to LCD repeatedly.
' Note this example is for SEEPROMs with byte-sized address.
'

Include "modedefs.bas"  ' Mode definitions for Serout

Define OSCCAL_1K 1      ' Calibrate internal oscillator

LCD Var GPIO.1  ' LCD TX pin
SCL Var GPIO.4  ' Clock pin
SDA Var GPIO.5  ' Data pin

B0 Var Byte     ' Address
B1 Var Byte     ' Data 1
B2 Var Byte     ' Data 2

   ANSEL = 0    ' Set all digital
   CMCON = 7    ' Analog comparators off

   OPTION_REG.7 = 0  ' Enable internal pull ups

   Pause 500         ' Wait for LCD to start up

   For B0 = 0 To 15  ' mainloop 16 times
       B1 = B0 + 100 ' B1 is data for SEEPROM
       I2CWRITE SDA, SCL, $A0, B0, [B1] ' Write each location
       Pause 10      ' Delay 10ms after each write
   Next B0

mainloop:
   For B0 = 0 To 15 Step 2 ' mainloop 8 times
       I2CREAD SDA, SCL, $A0, B0, [B1, B2]  ' Read 2 locations in a row
       Serout LCD, T2400, [$fe, 1, #B0, ": ", #B1, " ", #B2]  ' Display 2 locations
       Pause 1000          ' Wait 1 second
   Next B0

   Goto mainloop

   End

           

Download the program file.