Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: NamTech - 20 Kasım 2017, 20:01:02

Başlık: Hc595 kullanımı hakkında
Gönderen: NamTech - 20 Kasım 2017, 20:01:02
Merhabalar,

Ben ccsc kullanmaya yeni başladım, bir proje tasarlamaya çalışıyorum. 74595 kütüphanesinde kullanacağım 595 adedini belirtmem gerekiyor imiş,

benim sorum bu kütüphanede kaç taneye kadar 595 kullanabilirim, ben projemde 25 adet 595 kullanmayı düşünüyorum.

Şimdiden teşekkürler.
Başlık: Ynt: Hc595 kullanımı hakkında
Gönderen: gokhangokcen - 21 Kasım 2017, 10:59:52
45 tane kullandım hiç bir problem yaşamadım. Daha fazlada kullanılabilir. Tek dikkat etmen gereken nokta ise Data pini kaskat bağlı olduğu için herhangi bir buffera ihtiyaç duymuyor. Ama clock,latch,enable gibi pinleri bir buffer kullanarak bağla.Takribi çekeceği akımı hesap edip uygun bir entegre ya da devre kullanabilirsin. 74HC245 kullanıyorum genelde.
Birde süreceğin yük nedir? Led gibi ürünler mi yoksa röle gibi ürünler mi? 74HC595 ile led sürdüm genelde. Röle ya da buna benzer ürünler kullanacaksan ben tavsiye etmem zira son uygulamada baya sıkıntı yaşatmıştı bana. Osilaskop olmadığı için inceleyemedim belki besleme sıkıntısı ya da data clock problemi yaşamış olabilirim ama led harici bir uygulamada yüksek adetli 595 kullanmam bu saatten sonra.
Başlık: Ynt: Hc595 kullanımı hakkında
Gönderen: exmachine - 21 Kasım 2017, 11:55:39
Aşağıdaki kod parçasını baz alarak kendi kütüphaneni ya da fonksiyonunu oluşturabilirsin.



//---------------------74HC595 PINLERİ AYARLANIYOR --------------------
#define hcclock pin_c0 
#define hcdata pin_c1
#define hcload pin_c2

#define hc_load  output_high(hcload);output_low(hcload)  // data yükleme makrosu


// ---------------------74HC595 VERİ YOLLAMA FONKSİYONU---------------------------------
void hc595_yolla(unsigned char veri)
{ unsigned  char s;
   for(s=0x80;s>0;s>>=1)

   {
      if(s&veri)output_high(hcdata);

      else  output_low(hcdata); 

      output_high(hcclock);

      output_low(hcclock);

   }
}

Başlık: Ynt: Hc595 kullanımı hakkında
Gönderen: NamTech - 21 Kasım 2017, 12:00:35
İlginiz ve yardımlarınız için teşekkürler

Devre tamamı led sürecek röle ve diğer aksamları uln ile süreceğim

Başlık: Ynt: Hc595 kullanımı hakkında
Gönderen: mehmet - 21 Kasım 2017, 21:44:18
Hem shift register hem de güçlü çıkış siteniyor ise
TPIC6B595 uygun olacaktır.
Başlık: Ynt: Hc595 kullanımı hakkında
Gönderen: NamTech - 14 Ocak 2018, 21:28:40
Arkadaşlar takıldığım bir kaç konu var yardım ederseniz.


#include <deneme.h>

#use rs232(baud=9600, xmit=PIN_A0, rcv=PIN_A1,RESTART_WDT,ERRORS,INVERT)


#IFNDEF EXP_OUT_ENABLE

#define EXP_OUT_ENABLE PIN_B0
#define EXP_OUT_CLOCK PIN_B1
#define EXP_OUT_DO PIN_B2
#define NUMBER_OF_74595 1
#ENDIF

#include <74595.C>

#byte port_b=6
#byte port_c=7


                       void main()
                           {


set_tris_c(0);
set_tris_b(0);
port_b = 0xff;
port_c = 0;
                       while (1)

{
                 
write_expanded_outputs(0x01);
delay_ms(500);
write_expanded_outputs(0x02);
delay_ms(500);
write_expanded_outputs(0x04);
delay_ms(500);
write_expanded_outputs(0x08);
delay_ms(500);
write_expanded_outputs(0x10);
delay_ms(500);
write_expanded_outputs(0x20);
delay_ms(500);
write_expanded_outputs(0x40);
delay_ms(500);
write_expanded_outputs(0x80);
delay_ms(500);


                 
                             
}

                              }


kodunu deneme amaçlı kullandım fakat.
öncelikle programı sonsuz döngüye sokamadım.
displayde 8 yanıp sonra sönüyor başka bir şey yapmıyor.
işlemci 16F887


yardım ederseniz sevinirim, şimdiden teşekkürler
Başlık: Ynt: Hc595 kullanımı hakkında
Gönderen: Pyrodigy - 15 Ocak 2018, 21:06:42
Ccs nin driver klasörünün içindeki
74595.c isimli dosyayı incelediğimizde
Write_expanded_outs() fonksiyonun tanımlanmasında parametre olarak adres aldığını görüyoruz.
Hal böyle iken bu fonksiyona parametre atarken 595 e yazılması istenen değişken yada dizinin adresini yollamamız gerekli.
Forumda kısa bir araştırma yaparsan tonla örnek var.
Senin örneğinde şöyle yapabilirsin

char Data =0x01;
Write_expanded_outs(&Data);

Sevgiler
Başlık: Ynt: Hc595 kullanımı hakkında
Gönderen: RaMu - 15 Ocak 2018, 23:55:38

Ek bilgi olarak:


16F877 kullandığını bildiğin için bir zararı yok ama
mcu değiştirirken kolaylık olması açısından
şöyle kullanırsan daha iyi olur;

#byte port_b=6
#byte port_c=7

yerine

#byte port_b = getenv("SFR:PORTB")
#byte port_c = getenv("SFR:PORTC")

MCU değiştirsende CcsC kendisi PORTB vs.
nerede ise bulup, adresini kendi atar.


veya;

port_b = 0xff;
port_c = 0;

yerine, hiç port_b vs. tanımlamadan
CcsC nin kendi port komutlarını kullanabilirsin

output_b(0xFF);
output_c(0x00);







Ayrıca,
eğer FAST_IO komutunu kullanmadıysan,
set_tris fonksiyonu CcsC nin kendi
"output_b(0xFF);" gibi fonksiyonlarında işe yaramaz,
porta her değer yazılacağı zaman
önce port, CcsC tarafından çıkış yapılır, FAST_IO kullanılmazsa.