Ana sayfa | Hakkımda | İletişim | Sosyal platform
PIC CCS C & ASM / Kendi kütüphanemiz
74HC595 serisine veri yükleme

Aşağıdaki kütüphane ile 74hc595 kaydırmalı kaydedici entegrelerine kolaylıkla veri yükleyebilirsiniz.

Parametreleri açıklayacak olursak;

İlk olarak fonksiyonumuz "F_74HC595(a, b, c); " 3 parametreden oluşuyor.

a: Tek bir değişken ya da birden fazla elemanlı bir dizimiz var ise o dizimizin ya da değişkenimizin ismini bu parametreye yazıyoruz. (Eğer yüklemek istediğimiz tek bir değişkenimiz var ise b ve c parametreleri 0(sıfır) olacak.

b ve c: Eğer birden fazla elemanlı bir diziye sahipsek ve entegrelere o diziyi yüklemek istiyorsak, a parametresi yerine ilgili dizimisin adını yazacağız. b ve c parametresi ise ilgili dizideki istenilen aralıktaki bilgileri yüklememizi sağlayan parametredir.

Yani bizim 5 elemanlı bir dizimiz var ise( dizim[5] ) ve bu dizideki 3 ve 5. elemanları dahil olacak şekilde iki dizi adresi arasındaki verileri entegrelere gönderir.

O zaman fonksiyonumuz şu şekilde olacaktır;

F_74HC595(dizim, 2, 4);  // şeklinde olacaktır.

Eğer 5 elemanlı dizimizin tamamını entegre serisine yüklemek istiyorsak oluşturmamız gereken fonksiyon parametreleri aşağıdaki gibi olacaktır;

F_74HC595(dizim, 0, 4); // Bildiğiniz üzere 5 elemanlı bir dizinin 5. elemanının adresi 4'tür.

Aslında b ve c parametrelerinde ilgili dizinin adresleri üzerinden işlem yapılır.

Bu kütüphaneyi test etmek için aşağıdaki bağlantıda yer alan bu kütüphane için yapılmış olan uygulamayı indirebilir ve test edebilirsiniz. Detaylar uygulama sayfasında yer almaktadır.

http://www.elektrocavus.com/74HC595-ile-port-cogullama

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#define bilgi_pini      pin_a0
#define sinyal_pini     pin_a1
#define izin_pini       pin_a2



Void F_74HC595(int *veri, int ilk_veri, int son_veri)
{
int i=0, j=0;
// veri: 74hc595'e yüklenecek olan byte ya da byte dizisi
// ilk_veri: Veri değişkeni eğer dizi ise dizinin ilk baytından başlanacak(yüklemek için)
// son_veri: Veri değişkeni eğer dizi ise dizinin son baytı 
   if(ilk_veri == 0 && son_veri == 0)
   {
      for(i=0;i<8;i++)
      {
         if(bit_test(*veri,i))
            output_high(bilgi_pini);
         else 
            output_low(bilgi_pini);
            
         output_high(sinyal_pini);
         output_low(sinyal_pini);
      } 
      output_high(izin_pini);
      output_low(izin_pini);
   }
   else
   {
      for(i=0;i<=(son_veri-ilk_veri);i++)
      {
          for(j=0;j<8;j++)
          {
            if(bit_test(veri[i+ilk_veri],j))
               output_high(bilgi_pini);
            else 
               output_low(bilgi_pini);
            output_high(sinyal_pini);
            output_low(sinyal_pini);        
          }
      }
      output_high(izin_pini);
      output_low(izin_pini);
   }
}
ELEKTRO ÇAVUŞ
Ana sayfa | Hakkımda | İletişim | Sosyal platform
ELEKTRO ÇAVUŞ2012 | elektrocavus.com