You are on page 1of 3

Gii thiu v I2C: L 1 chun truyn d liu dng 2 dy (1 dy Clock hay SCL, 1 dy Data hay cn gi l SDA).

I2C c th truyn d liu theo m hnh 1 Master nhiu Slave, di y l 1 v d s dng Atmega 8 giao tip vi Real Time Clock v Serial EEProm

-DS1307 Real Time Clock c a ch c 0xD0, a ch ghi 0xD1 qu trnh c ghi din ra theo lc sau :

Void Write_DS1307(char* buff , byte len) // buff l b m truyn, len l s byte cn ghi { char i ; I2C_Write(0xD0); for(i=0;i<len;i++) I2C_Write( buff[i] ) ; }

Void Read_DS1307(char* buff , byte len) // buff l b m nhn, len l s byte cn c { char i ; I2C_Write(0xD1); for(i=0;i<len;i++) buff[i] = I2C_Read(); }

-AT24C04 - 4Kbits Serial EEProms C a ch c 0xA0, a ch ghi 0xA1 , qu trnh c ghi din ra nh sau : Ghi vo EEProms :

Void Write_24C04(usigned int address, char* buff , byte len) //address l a ch cn ghi, buff l b m truyn, len l s byte cn ghi { char i ; I2C_Write(0xD0); I2C_Write(address >> 8) ; // 8bit address high I2C_Write(address & 0xff ) ; // 8bit address low for(i=0;i<len;i++) I2C_Write( buff[i] ) ; }

c ra t EEProms:

Char Read_24C04(usigned int address) //address l a ch cn c { char i ; I2C_Write(0xD0); // Write address first I2C_Write(address >> 8) ; // 8bit address high I2C_Write(address & 0xff ) ; // 8bit address low I2C_Write(0xD1); // Read out data Return ( I2C_Read() ); }

You might also like