ME Labs, Inc. 719-520-5323 |
ME Labs, Inc. | 1-719-520-5323 | Example Program - I2CXU.pbpPICBASIC PRO program to read and write to I2C SEEPROMs Writes to the first 16 locations of an external serial EEPROM. Reads first 16 locations back and send to LCD repeatedly. Note: for SEEPROMs with byte-sized address.' Name : I2CXU.pbp ' Compiler : PICBASIC PRO Compiler 2.6 ' Assembler : MPASM ' Target PIC : PIC18F4550 or similar type ' Hardware : LAB-XUSB Experimenter Board ' Oscillator : 20MHz external ' Keywords : I2CREAD, I2CWRITE, LCDOUT ' Description : PICBASIC PRO program to read and write to I2C SEEPROMs ' Writes to the first 16 locations of an external serial EEPROM. ' Reads first 16 locations back and send to LCD repeatedly. ' Note: for SEEPROMs with byte-sized address. ' ' Define LOADER_USED to allow use of the boot loader. ' This will not affect normal program operation. Define LOADER_USED 1 ' RESET_ORG can be set to move the BASIC program out of the way ' of any boot loader running from location 0, such as the ' Microchip USB boot loader 'Define RESET_ORG 800h Define OSC 48 ' Core is running at 48MHz ' Define LCD pins Define LCD_DREG PORTD Define LCD_DBIT 4 Define LCD_RSREG PORTE Define LCD_RSBIT 0 Define LCD_EREG PORTE Define LCD_EBIT 1 SDA Var PORTA.4 ' Data pin SCL Var PORTA.5 ' Clock pin B0 Var Byte ' Address B1 Var Byte ' Data 1 B2 Var Byte ' Data 2 ADCON1 = 15 ' Set PORTA and PORTE to digital Low PORTE.2 ' LCD R/W line low (W) Pause 100 ' Wait for LCD to start up For B0 = 0 To 15 ' Loop 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 ' Loop 8 times I2CREAD SDA, SCL, $A0, B0, [B1, B2] ' Read 2 locations in a row Lcdout $fe, 1, #B0, ": ", #B1, " ", #B2, " " ' Display 2 locations Pause 1000 Next B0 Goto mainloop End Download the program file. |
Copyright 2022 ME Labs, Inc. PO Box 8250 Asheville NC 28814 (719) 520-5323 (719) 520-1867 fax email: support@melabs.com |
|