Site icon Ercan Koçlar

LH52256 SRAM MikroC Kütüphanesi

LH52256-SRAM-kapak

LH52256-SRAM-kapak

This post is also available in: English (İngilizce)


 


SRAM Nedir?

LH52256 Statik RAM Görülmektedir.

PIC ile Neden RAM Kullanılır?

LH52256  ve RAM ler Hakkında Genel Bilgiler

LH52256 MikroC Kütüphanesi ve Devresinin Genel Mantığı

74HC164 shift register Entegreleri
74HC164 Çalışma Mantığı

 

LH52256 Pin İşlevleri

LH52256 Pinleri
Pin İsmi İşlevi
A0 – A14 Adres Girişleri
CE RAM Seçer
WE Yazma İşlemi Yapar
OE Okuma İşlemi Yapar
I/O1 – I/O8 Veri Giriş ve Çıkış
Vcc Besleme +5V
GND Topraklama

 

74HC164 Pin İşlevleri

74HC164 Pin İşlevleri
Sembol Pin Açıklama
DSA 1 Veri Girişi
DSB 2 Veri Girişi
Q0 – Q7 3,4,5,6,10,11,12,13 Çıkış
GND 7 Topraklama
CP 8 Saat Darbesi
MR 9 Master Reset
Vcc 14 Besleme +5v

LH52256 Çalışma Protokolleri

 

Genel İşlem Tablosu

CE WE OE Mod I/O1-I/O8 Besleme
H x x Boşta Yüksek Seviye 0.6 mA
L H L Okuma Veri Çıkışı 25 mA
L H H Çıkış İptal Yüksek Seviye 25 mA
L L x Yazma Veri Girişi 25 mA

 

LH52256 Veri Okuma İşlemi

LH52256 Veri Okuma İşlemi

 

LH52256 Veri Yazma İşlemi

LH52256 Veri Yazma İşlemi

 

LH52256 SRAM Devresi

 

LH52256 Devre Şeması

LH52256 SRAM Devre Şeması – Resmi Büyütmek İçin Üzerine Tıklayınız

Gerekli Malzemeler

  1. 2 adet 74HC164 kaydırmalı kayıt edici entegre
  2. 2 adet 14 pin entegre soketi (74HC164 ler için)
  3. 4 adet LH52256 SRAM entegresi ( yada 1 adet tercihre göre)
  4. 4 adet dar tip 28 pin entegre soketi
  5. 6 adet 0.1uf kondansatör
  6. Delikli Pertinaks
  7. Percision dişi ve erkek soketler ( yapılacak devreye göre değişebilir)

Devrenin Yapılışı

LH52256 SRAM Devre Genel Görünümü

 

LH52256 SRAM Devre Genel Görünümü 2

 

LH52256 SRAM Soketler

 

LH52256 SRAM Soketler 2

 

LH52256 SRAM MikroC Kütüphanesi

Fonksiyonlar

Kaydırmalı Kayıt Edici “Shift Register” Fonksiyonları

 

– LH52256_RESET_RUTINI Fonksiyonu

Fonksiyon : void LH52256_RESET_RUTINI()

Amacı : 74HC164 üzerinde daha önceden yazılmış tüm veriyi silerek çıkışları “0” yapar. Adres bilgisini siler

Parametreler : Bulunmuyor

Kullanım Şekli :

LH52256_RESET_RUTINI();

Geri Bildirim :  void tipinde olduğundan geri bildirimde bulunmaz

 

– LH52256_SHIFT_REGISTER_VERI_GONDERME_RUTINI Fonksiyonu

Fonksiyon : void LH5225_SHIFT_REGISTER_VERI_GONDERME_RUTINI(unsigned char VERI)

Amacı : 74HC164 e veri yüklenmesini sağlar

Parametreler :

Kullanım Şekli :

LH5225_SHIFT_REGISTER_VERI_GONDERME_RUTINI(1);//shift registera lojik 1 verisi yükler yani sıradaki port lojik 1 olur

Geri Bildirim : void tipinde olduğundan geri bildirimde bulunmaz

 

– LH52256_ADRES_SECME Fonksiyonu

Fonksiyon : unsigned char LH52256_ADRES_SECME(unsigned int RAM_ADRESI)

Amacı : LH52256 SRAM de adres seçilmesini sağlar.

Parametreler :

Kullanım Şekli :

LH52256_ADRES_SECME(125);// SRAM in 125. adresi seçilir

Geri Bildirim :

 

Genel SRAM Fonksiyonları

 

– LH52256_ANALIZ Fonksiyonu

Fonksiyon : unsigned char LH52256_ANALIZ()

Amacı : Takılı olan RAM leri analiz eder ve ilk pin-port ayarlamalarını yapar

Parametreler : Bulunmuyor

Kullanım Şekli :

LH52256_ANALIZ();//sistemdeki RAM ler analiz edilir

Geri Bildirim :

 

– LH52256_RAM_SECME Fonksiyonu

Fonksiyon : void LH52256_RAM_SECME(unsigned char RAM_NUMARASI)

Amacı :

Parametreler :

Kullanım Şekli :

LH52256_RAM_SECME(4);//4. sokete takılı RAM aktif hale getirildi

Geri Bildirim : void tipinde olduğundan geri bildirimde bulunmaz.

 

– LH52256_DERINLEMESINE_TEST Fonksiyonu

Fonksiyon : unsigned char LH52256_DERINLEMESINE_TEST(unsigned char RAM_NUMARASI)

Amacı : Seçilen RAM in tüm adreslerini tek tek kontrol eder

Parametreler :

Kullanım Şekli :

LH52256_DERINLEMESINE_TEST(2);//2 numaralı sokette bulunan RAM de derinlemesine inceleme yapar

Geri Bildirim :

 

SRAM Veri Yazma Fonksiyonları

 

– LH52256_RAM_VERI_YAZMA_RUTINI_SABIT Fonksiyonu

Fonksiyon : void LH52256_RAM_VERI_YAZMA_RUTINI_SABIT(unsigned char VERI)

Amacı : 8 bitlik veri yazar

Parametreler :

Kullanım Şekli :

LH52256_RAM_VERI_YAZMA_RUTINI_SABIT(125);

Geri Bildirim : void tipinde olduğundan geri bildirimde bulunmaz.

 

– LH52256_RAM_VERI_YAZMA_RUTINI_ARTTIRIMLI Fonksiyonu

Fonksiyon : void LH52256_RAM_VERI_YAZMA_RUTINI_ARTTIRIMLI(unsigned char VERI,unsigned char *HATA)

Amacı : 8 bitlik veri yazar ve otomatik olarak yazma yaptığı adresi bir kez arttırır

Parametreler :

Kullanım Şekli :

unsigned char abc;

LH52256_RAM_VERI_YAZMA_RUTINI_ARTTIRIMLI(125,abc);//125 verisi gönderilirken pointerden gelecek kod ise abc değişkeninden okunabilir

Geri Bildirim : void tipinde olduğundan geri bildirimde bulunmaz

 

– LH52256_RAM_VERI_YAZMA_RUTINI_AZALTIMLI Fonksiyonu

Fonksiyon : void LH52256_RAM_VERI_YAZMA_RUTINI_AZALTIMLI(unsigned char VERI,unsigned char *HATA)

Amacı : 8 bitlik veri yazar ve otomatik olarak yazma yaptığı adresi bir kez azaltır

Parametreler  :

Kullanım Şekli :

unsigned char abc;

LH52256_RAM_VERI_YAZMA_RUTINI_AZALTIMLI(125,abc);//125 verisi gönderilirken pointerden gelecek kod ise abc değişkeninden okunabilir

Geri Bidirim : void tipinde olduğundan geri bildirimde bulunmaz

 

SRAM Veri Okuma Fonksiyonları

 

– LH52256_RAM_VERI_OKUMA_RUTINI_SABIT Fonksiyonu

Fonksiyon : unsigned char LH52256_RAM_VERI_OKUMA_RUTINI_SABIT()

Amacı : 8 bitlik veriyi RAM den okur

Parametreleri : Bulunmuyor

Kullanım Şekli :

unsigned char okunan_veri;

okunan_veri = LH52256_RAM_VERI_OKUMA_RUTINI_SABIT();

Geri Bildirim : Okuduğu veriyi geri döndürür

 

– LH52256_RAM_VERI_OKUMA_RUTINI_ARTTIRIMLI Fonksiyonu

Fonksiyon : unsigned char LH52256_RAM_VERI_OKUMA_RUTINI_ARTTIRIMLI(unsigned char *HATA)

Amacı : 8 bitlik veriyi RAM den okur ve okuma yaptığı adresi otomatik olarak bir arttırır

Parametreleri :

Kullanım Şekli :

unsigned char okunan_veri,abc;

okunan_veri = LH52256_RAM_VERI_OKUMA_RUTINI_ARTTIRIMLI(abc);

Geri Bildirim : Okuduğu veriyi geri döndürür

 

– LH52256_RAM_VERI_OKUMA_RUTINI_AZALTIMLI Fonksiyonu

Fonksiyon : unsigned char LH52256_RAM_VERI_OKUMA_RUTINI_AZALTIMLI(unsigned char *HATA)

Amacı : 8 bitlik veriyi RAM den okur ve okuma yaptığı adresi otomatik olarak bir azaltır

Parametreleri :

Kullanım Şekli  :

unsigned char okunan_veri,abc;

okunan_veri = LH52256_RAM_VERI_OKUMA_RUTINI_AZALTIMLI(abc);

Geri Bildirim : Okuduğu veriyi geri döndürür

 

Fonksiyonların Uygulanması

Pin Tanımlamasının Yapılması

 sbit LH52256_CP   at RE0_bit;        //74164 Saat - clk
 sbit LH52256_DSA  at RE2_bit;        //74164 Shift register verisi buradan ayarlanın 1 mi 0 mı
 sbit LH52256_MR   at RE1_bit;        //74164 RESET
 char LH52256_DATA at portb;          //ram data I/O  giriş
 sbit LH52256_CE1  at RA0_bit;        //ram1 chip enable
 sbit LH52256_CE2  at RA1_bit;        //ram2 chip enable
 sbit LH52256_CE3  at RA2_bit;        //ram3 chip enable
 sbit LH52256_CE4  at RA3_bit;        //ram4 chip enable
 sbit LH52256_WE   at RA5_bit;       //ram write enable
 sbit LH52256_OE   at RA4_bit;
 
 sbit LH52256_CP_Direction   at TRISE0_bit;
 sbit LH52256_DSA_Direction  at TRISE2_bit;
 sbit LH52256_MR_Direction   at TRISE1_bit;
 char LH52256_DATA_Direction at TRISB;
 sbit LH52256_CE1_Direction  at TRISA0_bit;
 sbit LH52256_CE2_Direction  at TRISA1_bit;
 sbit LH52256_CE3_Direction  at TRISA2_bit;
 sbit LH52256_CE4_Direction  at TRISA3_bit;
 sbit LH52256_WE_Direction   at TRISA5_bit;
 sbit LH52256_OE_Direction   at TRISA4_bit;

 

SRAM Analizi Yapmak

void  main()
{
    unsigned char ram_sayisi=0;
    char txt[12];//çevrim için gereklidir
    ADCON1=0b00001111;//tüm analog girişler dijital yapıldı
    CMCON=7;//komparatörler kapatıldı
  
    SAP1024_INIT(240,128,6);//GLCD ekran kütüpahanesi kurulur
  
    ram_sayisi=LH52256_ANALIZ();//Sistemdeki RAM ler analiz edilir 
  
   //Sonuçlar str ye çevrilip GLCD de gösterilir
   WORDtostr(ram_sayisi,txt);
   SAP1024_YAZI_YAZMA(10,10,txt);

}

 

SRAM Okuma İşlemi Yapmak

void  main()
{
    unsigned char veri=0; 
    char txt[12];//çevrim için gereklidir 
    ADCON1=0b00001111;//tüm analog girişler dijital yapıldı 
    CMCON=7;//komparatörler kapatıldı

    SAP1024_INIT(240,128,6);//GLCD ekran kütüpahanesi kurulur
  
    LH52256_ANALIZ();

    LH52256_ADRES_SECME(32766);//32766. SRAM adresi seçilir
    
    LH52256_RAM_SECME(1);//1 numaralı SRAM seçilir
   
    veri= LH52256_RAM_VERI_OKUMA_RUTINI_SABIT();//okunan veriler "veri" değişkenine aktarılır
  
  

   //Sonuçlar str ye çevrilip GLCD de gösterilir
    WORDtostr(veri,txt);
    SAP1024_YAZI_YAZMA(10,10,txt);

}
void  main()
{
    unsigned char veri=0,hata_kodu;
    unsigned int i=0; 
    char txt[12];//çevrim için gereklidir 
    ADCON1=0b00001111;//tüm analog girişler dijital yapıldı 
    CMCON=7;//komparatörler kapatıldı

    SAP1024_INIT(240,128,6);//GLCD ekran kütüpahanesi kurulur
  
    LH52256_ANALIZ();

    LH52256_ADRES_SECME(0);//0. SRAM adresi seçilir
    
    LH52256_RAM_SECME(1);//1 numaralı SRAM seçilir
   
    for(i=0;i<32768;i++)
       {
         veri= LH52256_RAM_VERI_OKUMA_RUTINI_ARTTIRIMLI(hata_kodu);//okunan veriler "veri" değişkenine aktarılır ve adres bir arttırlır
       
          if(hata_kodu==0)//eğer adres hatası alırsan
            {
               return;//işlemi sonlandır
            } 

         //Sonuçlar str ye çevrilip GLCD de gösterilir
         WORDtostr(veri,txt);
         SAP1024_YAZI_YAZMA(10,10,txt);
       }

}

 

SRAM Yazma İşlemi Yapmak

void  main()
{
    char txt[12];//çevrim için gereklidir 
    ADCON1=0b00001111;//tüm analog girişler dijital yapıldı 
    CMCON=7;//komparatörler kapatıldı

    SAP1024_INIT(240,128,6);//GLCD ekran kütüpahanesi kurulur
  
    LH52256_ANALIZ();

    LH52256_ADRES_SECME(100);//100. SRAM adresi seçilir
    
    LH52256_RAM_SECME(3);//3 numaralı SRAM seçilir
   
    LH52256_RAM_VERI_YAZMA_RUTINI_SABIT(235);//seçilen adrese 235 değeri yazıldı
  
  

   //Sonuçlar str ye çevrilip GLCD de gösterilir
    WORDtostr(veri,txt);
    SAP1024_YAZI_YAZMA(10,10,txt);

}
void  main()
{
    unsigned char hata_kodu;
    unsigned int i=0; 
    char txt[12];//çevrim için gereklidir 
    ADCON1=0b00001111;//tüm analog girişler dijital yapıldı 
    CMCON=7;//komparatörler kapatıldı

    SAP1024_INIT(240,128,6);//GLCD ekran kütüpahanesi kurulur
  
    LH52256_ANALIZ();

    LH52256_ADRES_SECME(0);//0. SRAM adresi seçilir
    
    LH52256_RAM_SECME(3);//3 numaralı SRAM seçilir
   
    for(i=0;i<1200;i++)
       {
         LH52256_RAM_VERI_YAZMA_RUTINI_ARTTIRIMLI(120,hata_kodu);//120 verisi 0 dan 1200 e kadar tüm adreslere yazılır
       
          if(hata_kodu==0)//eğer adres hatası alırsan
            {
               return;//işlemi sonlandır
            } 

         //Sonuçlar str ye çevrilip GLCD de gösterilir
         WORDtostr(veri,txt);
         SAP1024_YAZI_YAZMA(10,10,txt);
       }

}

 

SRAM Derinlemesine Analiz Yapmak

void  main()
{
    char txt[12];//çevrim için gereklidir
    unsigned char ram_sayisi=0; 
    ADCON1=0b00001111;//tüm analog girişler dijital yapıldı 
    CMCON=7;//komparatörler kapatıldı

    SAP1024_INIT(240,128,6);//GLCD ekran kütüpahanesi kurulur
  
    LH52256_ANALIZ();
  
    ram_sayisi=LH52256_DERINLEMESINE_TEST(1);//1 nolu RAM e derinlemesine test yapılır

   //Sonuçlar str ye çevrilip GLCD de gösterilir
    WORDtostr(ram_sayisi,txt);
    SAP1024_YAZI_YAZMA(10,10,txt);

}

Çalışma Video


SONUÇ


Kütüphane Dosyaları

 

 


Yararlanılan Belgeler


 

This post is also available in: English (İngilizce)

Exit mobile version