Berikut adalah contoh bagaimana meng-akses I2C EEPROM Atmel 24C02 menggunakan CodeVision-AVR:
/* bus I2C dihubungkan dengan PORTB */
/* sinyal SDA pada bit 3 */
/* sinyal SCL pada bit 4 */
#asm
.equ __i2c_port=0x18
.equ __sda_bit=3
.equ __scl_bit=4
#endasm
#include <i2c.h>
#include <delay.h>
#define EEPROM_BUS_ADDRESS 0xa0
/* membaca satu byte dari EEPROM */
unsigned char eeprom_read(unsigned char address) {
unsigned char data;
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data=i2c_read(0);
i2c_stop();
return data;
}
/* menulis satu byte ke EEPROM */
void eeprom_write(unsigned char address, unsigned char data) {
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address);
i2c_write(data);
i2c_stop();
/* jeda 10ms untuk menyelesaikan penulisan */
delay_ms(10);
}
void main(void) {
unsigned char i;
/* inisialisasi bus I2C */
i2c_init();
/* menulis byte 55h pada alamat AAh */
eeprom_write(0xaa,0x55);
/* membaca byte dari alamat AAh */
i=eeprom_read(0xaa);
while (1); /* loop selamanya */
}