Site icon Ercan Koçlar

AT24C512 EEPROM MikroC Kütüphanesi

at24c512

at24c512



AT24C512 EEPROM

MikroC de derleme yapılınca kullanılan PIC ROM belleği görülebilir. (Büyütmek için resme tıklayabilirsiniz)

 

AT24C512 EEPROM Özelliklleri

 

EEPROM Alanı

 

EEPROM Adresleme ve Sayfa Mantığı

AT24C512 eeprom alan haritası görülmektedir. (Büyütmek için resme tıklayabilirsiniz)

 

AT24C512 Çalışma Protokolleri

 

AT24C512 Adresleme Sistemi

AT24C512 Adres Şeması

 

AT24C512 Tek Veri Yazma Protokolü

AT24C512 tek veri (byte) yazma blok şeması. (Büyütmek için resme tıklayabilirsiniz)

 

AT24C512 Çoklu Veri Yazma Protokolü

AT24C512 çoklu veri yazma protokolü. (Büyütmek için resme tıklayabilirsiniz)
AT24C512 sayfa sistemi ve adres geçiş sorunu

 

AT24C512 Tek Veri Okuma Protokolü

AT24C512 tek veri okuma protokolü. (Büyütmek için resme tıklayabilirsiniz)

 

AT24C512 Çoklu Veri Okuma Protokolü

AT24C512 çoklu veri okuma protokolü. (Büyütmek için resme tıklayabilirsiniz)

 

AT24C512 Pin İşlevleri

AT24C512 pinleri
PIN Adı İşlevi
A0  I2C adresleme pini. +5V=1 demektir GND=0 dır
A1   I2C adresleme pini. +5V=1 demektir GND=0 dır
NC  Bağlantı yapılmaz-Bazı modellerde A2 dir
GND  Topraklama
VCC  +5v besleme
WP  Yazma koruması 1 konumunda aktiftir
SCL I2C protokolünde clock pini bağlanır
SDA I2C protokolünde data pini bağlanır

 

AT24C512 EEPROM Devresi

Devre Şeması

AT24C512 devre şeması

Gerekli Malzemeler

  1. AT24C512 EEPROM – En fazla 4 Adet
  2. 20 k direnç – 2 ADET
  3. Ferrit Filtre  1k 100mhz – 2 Adet

Devrenin Yapılışı

AT24C512 devre genel görünüm

 

AT24C512 yakın çekim

 

AT24C512  – SDA ve SCL pinlerinde ki seri ferrit filtreler

 

AT24C512 – 1k 100mhz ferrit filtre

 

AT24C512 EEPROM MikroC Kütüphanesi

Fonksiyonlar

 

AT24C512_Tekli_Veri_Yazma Fonksiyonu

Fonksiyon : unsigned char AT24C512_Tekli_Veri_Yazma(unsigned char EEPROM_ADRESI,unsigned int VERI_ADRESI,unsigned char VERI)

Amacı : Tek veri ( 1 byte) veri yazmak için kullanılır

Parametreler :

Kullanım Şekli :

AT24C512_Tekli_Veri_Yazma(1,0,5);//EEPROM adresi ve yazma yapılacağı bildirildi

Geri Bildirim :

 

 – AT24C512_Sayfa_Veri_Yazma Fonksiyonu

Fonksiyon : unsigned AT24C512_Sayfa_Veri_Yazma(unsigned char *HATA,unsigned char EEPROM_ADRESI,unsigned int VERI_ADRESI,unsigned char *VERI,unsigned int VERI_DIZI_SAYISI)

Amacı : AT24C512 ye sayfa mantığı ile  büyük verileri zaman kaybetmeden çok hızlı şekilde yazmak için kullanılır. Bu fonksiyon ile 0. adresten 65535. adrese kadar aralıksız veri yazılabilir.

Parametreler :

Kullanım Şekli :

AT24C512_Sayfa_Veri_Yazma(hata,1,20,dizi,255);

Geri Bildirim :

 

– AT24C512_Tekli_Veri_Okuma Fonksiyonu

Fonksiyon : unsigned char AT24C512_Tekli_Veri_Okuma(unsigned char EEPROM_ADRESI,unsigned int VERI_ADRESI)

Amacı : Eepromdan tek veri ( 1byte) okur

Parametreler :

Kullanım Şekli :

AT24C512_Tekli_Veri_Okuma(1,125);

Geri Bildirim :

 

–  AT24C512_Coklu_Veri_Okuma Fonksiyonu

Fonksiyon : void AT24C512_Coklu_Veri_Okuma(unsigned char EEPROM_ADRESI,unsigned int VERI_ADRESI,unsigned char *VERI,unsigned int VERI_DIZI_SAYISI)

Amacı : Kesintisiz olarak tüm eepromda ki verileri okumaya yarar

Parametreler :

Kullanım Şekli :

AT24C512_Coklu_Veri_Okuma(1,20,dizi3,255);

Geri Bildirim :

 

Fonksiyonların Uygulanması

 

AT24C512 Tekli ( 1 byte) Veri Yazma ve Okuma

//GLCD BİLDİRİMDLERİ
char SAPTRIS at trisd;//data portları
char SAPDATA_giris at portd;
char SAPDATA_cikis at latd;
sbit SAP1024_RD at RC4_bit ;       //GLCD RD UCU BAĞLANTI PİNİ
sbit SAP1024_CE at rc3_bit ;       //GLCD CE UCU BAĞLANTI PİNİ
sbit SAP1024_CD at Rc2_bit ;       //GLCD C/D UCU BAĞLANTI PİNİ
sbit SAP1024_RST at Rc1_bit ;      //GLCD RST UCU BAĞLANTI PİNİ
sbit SAP1024_FS at Rc0_bit ;       //GLCD FS UCU BAĞLANTI PİNİ
sbit SAP1024_WR at RC5_bit ;       //GLCD wr UCU BAĞLANTI PİNİ

sbit SAP1024_RD_Direction  at TRISC4_bit;       //GLCD RD UCU BAĞLANTI PİNİ
sbit SAP1024_CE_Direction  at TRISC3_bit;       //GLCD CE UCU BAĞLANTI PİNİ
sbit SAP1024_CD_Direction  at TRISC2_bit;       //GLCD C/D UCU BAĞLANTI PİNİ
sbit SAP1024_RST_Direction at TRISC1_bit;      //GLCD RST UCU BAĞLANTI PİNİ
sbit SAP1024_FS_Direction  at TRISC0_bit;       //GLCD FS UCU BAĞLANTI PİNİ
sbit SAP1024_WR_Direction  at TRISC5_bit;       //GLCD FS UCU BAĞLANTI PİNİ

//I2C BİLDİRİMLERİ
sbit I2C_SDA at RB6_bit;
sbit I2C_SCL at RB7_bit;

 sbit I2C_SDA_VERI at LATB6_bit;//27.01.2019 güncellemesi ile eklendi

sbit I2C_SDA_Direction at TRISB6_bit;
sbit I2C_SCL_Direction at TRISB7_bit;

 main() 
  {

   char txt[6];
   unsigned char veri;
   
   CMCON=7;//komparatörler kapatılı

   SAP1024_INIT(128,64,6);//kendi GLCD kütüphanemi çağırdım
     
   AT24C512_Tekli_Veri_Yazma(1,120,65);//120. adrese "65" verisi yazıldı

   veri=AT24C512_Tekli_Veri_Okuma(1,120);//120.adresteki veri okunup "veri" değişkenine atandı

   shortToStr(veri,txt);

   SAP1024_YAZI_YAZMA(2,2,txt);//GLCD yazdırma fonksiyonu
 }
AT24C512 tek veri ( 1byte) yazma ve okuma

 

AT24C512 Çoklu Veri Yazma ve Okuma

//GLCD BİLDİRİMDLERİ
char SAPTRIS at trisd;//data portları
char SAPDATA_giris at portd;
char SAPDATA_cikis at latd;
sbit SAP1024_RD at RC4_bit ;       //GLCD RD UCU BAĞLANTI PİNİ
sbit SAP1024_CE at rc3_bit ;       //GLCD CE UCU BAĞLANTI PİNİ
sbit SAP1024_CD at Rc2_bit ;       //GLCD C/D UCU BAĞLANTI PİNİ
sbit SAP1024_RST at Rc1_bit ;      //GLCD RST UCU BAĞLANTI PİNİ
sbit SAP1024_FS at Rc0_bit ;       //GLCD FS UCU BAĞLANTI PİNİ
sbit SAP1024_WR at RC5_bit ;       //GLCD wr UCU BAĞLANTI PİNİ

sbit SAP1024_RD_Direction  at TRISC4_bit;       //GLCD RD UCU BAĞLANTI PİNİ
sbit SAP1024_CE_Direction  at TRISC3_bit;       //GLCD CE UCU BAĞLANTI PİNİ
sbit SAP1024_CD_Direction  at TRISC2_bit;       //GLCD C/D UCU BAĞLANTI PİNİ
sbit SAP1024_RST_Direction at TRISC1_bit;      //GLCD RST UCU BAĞLANTI PİNİ
sbit SAP1024_FS_Direction  at TRISC0_bit;       //GLCD FS UCU BAĞLANTI PİNİ
sbit SAP1024_WR_Direction  at TRISC5_bit;       //GLCD FS UCU BAĞLANTI PİNİ

//I2C BİLDİRİMLERİ
sbit I2C_SDA at RB6_bit;
sbit I2C_SCL at RB7_bit;

 sbit I2C_SDA_VERI at LATB6_bit;//27.01.2019 güncellemesi ile eklendi

sbit I2C_SDA_Direction at TRISB6_bit;
sbit I2C_SCL_Direction at TRISB7_bit;

 main() {
   
   unsigned char hata;
   unsigned char dizi[5];

   dizi[0]=10;
   dizi[1]=20;
   dizi[2]=30;
   dizi[3]=40;
   dizi[4]=50;
   
   CMCON=7;//komparatörler kapatılı
   SAP1024_INIT(128,64,6);//kendi GLCD kütüphanemi çağırdım

   AT24C512_Sayfa_Veri_Yazma(hata,1,20,dizi,5);
}
//GLCD BİLDİRİMDLERİ
char SAPTRIS at trisd;//data portları
char SAPDATA_giris at portd;
char SAPDATA_cikis at latd;
sbit SAP1024_RD at RC4_bit ;       //GLCD RD UCU BAĞLANTI PİNİ
sbit SAP1024_CE at rc3_bit ;       //GLCD CE UCU BAĞLANTI PİNİ
sbit SAP1024_CD at Rc2_bit ;       //GLCD C/D UCU BAĞLANTI PİNİ
sbit SAP1024_RST at Rc1_bit ;      //GLCD RST UCU BAĞLANTI PİNİ
sbit SAP1024_FS at Rc0_bit ;       //GLCD FS UCU BAĞLANTI PİNİ
sbit SAP1024_WR at RC5_bit ;       //GLCD wr UCU BAĞLANTI PİNİ

sbit SAP1024_RD_Direction  at TRISC4_bit;       //GLCD RD UCU BAĞLANTI PİNİ
sbit SAP1024_CE_Direction  at TRISC3_bit;       //GLCD CE UCU BAĞLANTI PİNİ
sbit SAP1024_CD_Direction  at TRISC2_bit;       //GLCD C/D UCU BAĞLANTI PİNİ
sbit SAP1024_RST_Direction at TRISC1_bit;      //GLCD RST UCU BAĞLANTI PİNİ
sbit SAP1024_FS_Direction  at TRISC0_bit;       //GLCD FS UCU BAĞLANTI PİNİ
sbit SAP1024_WR_Direction  at TRISC5_bit;       //GLCD FS UCU BAĞLANTI PİNİ

//I2C BİLDİRİMLERİ
sbit I2C_SDA at RB6_bit;
sbit I2C_SCL at RB7_bit;

 sbit I2C_SDA_VERI at LATB6_bit;//27.01.2019 güncellemesi ile eklendi

sbit I2C_SDA_Direction at TRISB6_bit;
sbit I2C_SCL_Direction at TRISB7_bit;

 main() {
   
   unsigned char hata,j=0;
   unsigned char dizi[5];
   char txt[16];
   unsigned int i=0,veri=0;
   CMCON=7;//komparatörler kapatılı
   
   SAP1024_INIT(128,64,6);//kendi GLCD kütüphanemi çağırdım

   AT24C512_Coklu_Veri_Okuma(1,20,dizi,5);

   for(i=0;i<5;i++)
      {
       intToStr((dizi[i]),txt);

       SAP1024_YAZI_YAZMA(1,i+1,txt);
       delay_ms(150);
     }
  
}
AT24C512 çoklu veri yazma ve okuma

Çalışma Videosu


Sonuç


Kütüphane Dosyaları

 


Yararlanılan Kaynaklar


 

 

Exit mobile version