© Parallax, Inc. • 24LC128 (#602-00013) • 08/2005 v2.0 Page 5 of 5
i2cWork.BIT0 = 1 ' Sets Device To Read
SHIFTOUT SDA, SCL, MSBFIRST, [i2cWork\8] ' Send Byte To Device
SHIFTIN SDA, SCL, MSBPRE, [i2cAck\1] ' Get Acknowledge Bit
RETURN
Write_Data: ' I2C Write Byte Sequence
i2cWork = temp
SHIFTOUT SDA, SCL, MSBFIRST, [i2cWork\8] 'Send Byte To Device
SHIFTIN SDA, SCL, MSBPRE, [i2cAck\1] ' Get Acknowledge Bit
RETURN
BASIC Stamp
®
2p, 2pe, 2px Program
This program will allow you to use the 24LC128 with the BASIC Stamp 2p, 2pe and 2px.
' =========================================================================
' File....... 24LC128.bsp
' Purpose.... Interface To A 24LC128 16KB EEPROM
' Author..... Parallax, Inc.
' E-mail..... support@parallax.com
' Updated.... 08-09-2005
' {$STAMP BS2p}
' {$PBASIC 2.5}
' -----[ Program Description ]---------------------------------------------
' This code will interface the BS2p, BS2pe and BS2px to a 24LC128 EEPROM
' -----[ I/O Definitions ]-------------------------------------------------
SDA PIN 0 ' I2C Serial Data Line
SCL PIN 1 ' I2C Serial Clock Line
' -----[ Variables ]-------------------------------------------------------
value VAR Byte ' Variable Used To Store Value
eeprom_add VAR Word ' EEPROM Address
' -----[ Main Routine ]----------------------------------------------------
DO
DEBUG "Enter value to store from 0 to 255: "
DEBUGIN DEC3 Value
DEBUG CR, "Enter address to store ", DEC value, " at, 0 to 15999: "
DEBUGIN DEC5 eeprom_add
' Writing Section
I2COUT SDA, $A0,eeprom_add.HIGHBYTE\eeprom_add.LOWBYTE, [value]
PAUSE 20
' Reading Section
I2CIN SDA, $A1,eeprom_add.HIGHBYTE\eeprom_add.LOWBYTE, [value]
DEBUG CR, "Value stored at location ",DEC eeprom_add,
" is ", DEC value, CR, CR, CR
LOOP