602-00013

© Parallax, Inc. • 24LC128 (#602-00013) • 08/2005 v2.0 Page 4 of 5
DEBUGIN DEC3 temp
DEBUG CR, "Enter address to store ", DEC temp, " at, 0 to 15999: "
DEBUGIN DEC5 eeprom_add
' Writing Section
GOSUB I2C_Stop
GOSUB I2C_Start
GOSUB Control_Byte_Write
GOSUB Addrs
GOSUB Write_Data
GOSUB I2C_Stop
PAUSE 100
' Reading Section
GOSUB I2C_Start
PAUSE 10
GOSUB Control_Byte_Write
GOSUB Addrs
GOSUB I2C_Start
GOSUB Control_Byte_Read
SHIFTIN SDA, SCL, LSBFIRST, [i2cwork\8] ' Send Byte To Device
GOSUB I2C_Stop
DEBUG CR, "Value stored at location ", DEC eeprom_add,
" is ", DEC i2cwork.LOWBYTE, CR, CR, CR
LOOP
' -----[ Subroutines ]-----------------------------------------------------
I2C_Stop: ' I2C Stop Bit Sequence
LOW SDA
INPUT SCL
INPUT SDA ' SDA --> High While SCL High
RETURN
I2C_Start: ' I2C Start Bit Sequence
INPUT SDA
INPUT SCL
LOW SDA ' SDA --> Low While SCL High
RETURN
Addrs: ' I2C Address Byte Sequence
i2cWork = eeprom_add
SHIFTOUT SDA, SCL, MSBFIRST, [i2cWork.HIGHBYTE\8] ' Send Byte To Device
SHIFTIN SDA, SCL, MSBPRE, [i2cAck\1] ' Get Acknowledge Bit
SHIFTOUT SDA, SCL, MSBFIRST, [i2cWork.LOWBYTE\8] ' Send Byte To Device
SHIFTIN SDA, SCL, MSBPRE, [i2cAck\1] ' Get Acknowledge Bit
RETURN
Control_Byte_Write: ' I2C Control Write Byte Sequence
i2cWork = Address
i2cWork.BIT0 = 0 ' Sets Unit To Write
SHIFTOUT SDA, SCL, MSBFIRST, [i2cWork\8] ' Send Byte To Device
SHIFTIN SDA, SCL, MSBPRE, [i2cAck\1] ' Get Acknowledge Bit
RETURN
Control_Byte_Read: ' I2C Control Read Byte Sequence
i2cWork = Address
© 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

602-00013

Mfr. #:
Manufacturer:
Parallax
Description:
EEPROM 16K-Byte EEPROM (BS2SX - DIP)
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union

Products related to this Datasheet