Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: sifirzero - 09 Ocak 2017, 23:33:29

Başlık: 74hc164 ilgili
Gönderen: sifirzero - 09 Ocak 2017, 23:33:29
74hc164 ile ilgili ccs c kodu varmı.bilgi amaçlı.serdar hocanin kitabinda var ama pekbirşey anlamadim.mesela butona basinca 7 segmentte deger artma gibi.örnekler var arşivlerinizde.
Başlık: Ynt: 74hc164 ilgili
Gönderen: sifirzero - 10 Ocak 2017, 12:25:44
Kimsenin bir bilgisi yok galiba
Başlık: Ynt: 74hc164 ilgili
Gönderen: ete - 10 Ocak 2017, 12:57:41
Sorduğun şeyle iligli kimsenin bilgisi olduğunu sanmıyorum. 74HC164 bir shift registerdir. Paralel 8 bit girersin bu bilgiyi seri olarak alırsın. Genelde mikroişlemcilerde giriş portu artırmak için kullanılır. 7 segmentle alaksı olduğunu sanmıyorum. Mesajınla ilgili tek bir alaka kurulabilir oda 74164'e bir buton bağlarsın ve ona bastıkça sisteme bağlı 7 segmentte değer artışı sağlanır. Buda sağ elinle sol kulağını tutmak gibi bir şey. Normal işlemci pinleri ile bunu yapmak var iken neden 74164 kullanayım ki. ? Anlayacağın sorun havada kalmış ve hiç bir şekle yada duruma sokulamayan bir soru olarak gözüküyor o nedenlede cevap alamıyorsun. Daha spesifik sorular sormalısın. O zaman cevap alırsın.

Ete
Başlık: Ynt: 74hc164 ilgili
Gönderen: sifirzero - 10 Ocak 2017, 13:00:56
Ete hocam bakarmisiniz buna.
https://320volt.com/pic12f675-ve-lm35-sensorlu-termometre-devresi/ 
Başlık: Ynt: 74hc164 ilgili
Gönderen: ferit06 - 10 Ocak 2017, 13:55:43
Alıntı yapılan: serkancetin - 10 Ocak 2017, 13:00:56
Ete hocam bakarmisiniz buna.
https://320volt.com/pic12f675-ve-lm35-sensorlu-termometre-devresi/ 
ete hocanın bakmasını istediğiniz devre bir fantezi amaçlı( hadi biraz yummuşatayım deneysel diyelim) bir devre şöyleki;
-12F675 li bir termometre yapalım demişler ama hem 8 pinli bir pIC, hem 14 bacaklı bir Logic devre hem de 3 transistor kullanımı gerektiriyor.
-Bu tür bir kullanıma; elde bulunan kullanılacak ucuz bir PIC in yetersiz olan PIN sayısını genişletmek ve pahalı bir PIC kullanmamak ( yer meselesine giremiyorum daha fazla yer kaplıyor) amacıyla gidilir.

Buna göre toplam maliyeti daha düşük olacak ve daha derli toplu olacak,  bir  ADC modülü içeren 18 pınli PIC ( 16F88, 16F819, 16F1827 vb) ile çözüm elde edebilirsiniz.

Ama ben illa 74HC164 gibi bir Logic devre kullanacğım derseniz datasheets(https://www.google.com.tr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwj-n8r6tLfRAhXByRQKHYe_DtsQFggiMAA&url=http%3A%2F%2Fwww.nxp.com%2Fdocuments%2Fdata_sheet%2F74HC_HCT164.pdf&usg=AFQjCNGj6lh5QweL9bj4aCNfwYUrdl3gdw&cad=rja) inden kullanımı hakkında bilgi alabilirsiniz.
Başlık: Ynt: 74hc164 ilgili
Gönderen: sifirzero - 10 Ocak 2017, 14:00:28
Benim sormak istediğim bu shift registera ccs c de nasıl kontrol edebiliriz di.çok saolun bilgiler için.yardimlarinizi bekliyorum
Başlık: Ynt: 74hc164 ilgili
Gönderen: ozgurelkt - 10 Ocak 2017, 14:10:02
örneğin   yedi segment displayde 8 yazmak için(ortak katot) 0x7F  değerini bit bit göndermen gerekiyor ...ve her defasında 74hc164 de ki clock bitini bir yapıp sonra sıfır yapman gerekiyor.  gerekirse bir ara küçük bir kod yazarım.
Başlık: Ynt: 74hc164 ilgili
Gönderen: sifirzero - 10 Ocak 2017, 14:17:26
Çok iyi olur hocam.mantığıni anlamış olurum
Başlık: Ynt: 74hc164 ilgili
Gönderen: ozgurelkt - 10 Ocak 2017, 14:28:28
  int  goster[10]={0x3F,0x06,.............};  gibi 0 dan 9 a kadar 7 segment display kodlarını eklediğimiz bir dizinimiz olsun.


main kısmında

while(1)
{
    for(i=0;i<10;i++) //dizindeki sayıları seçmek için döngü

       {   
                     for(j=0;j<8;j++)// dizinden seçtiğiniz sayının bitlerini tek tek yollamak için oluşturulan döngü
         
                                  {    output_bit(pin_b0,bit_test(goster,j)); // 74hc164 data ucu  B0 pinine bağlı veriler buradan bit bit yollanıyor.

                                                   output_high(pin_b1);  // 74hc164 clock ucu  B1 bağlı   
                                                   output_low(pin_b1);
}
               delay_ms(1000); // her sayı görülebilsin diye 1 sn gecikme.
.
.
.  bit_test komutu ile göster dizini içinde ki  değişkenin  j ninci biti 1 mi 0 mı diye bakılır hangisi ise  fonksiyon o değer ile geri döner.
  umarım anlatabilmişimdir :)


Başlık: Ynt: 74hc164 ilgili
Gönderen: ete - 10 Ocak 2017, 16:39:06
74165 ile karıştırdım galiba. Paralel - in serial out olduğunu düşünüyordum ama tam tersi imiş. Dolayısıyla display sürmede kullanılabilir.
Mesajım yanlış oldu kusura bakmayın.
Ete
Başlık: Ynt: 74hc164 ilgili
Gönderen: sifirzero - 10 Ocak 2017, 16:42:56
@ozgurelkt  ustam bu serdar hocanin kitabindada var.bunu bir butin ekleyerek nasıl yapicaz.
Başlık: Ynt: 74hc164 ilgili
Gönderen: mehmet - 10 Ocak 2017, 17:34:35
İşe yarar belki...
https://www.picproje.org/index.php/topic,62398.msg483324.html#msg483324
Başlık: Ynt: 74hc164 ilgili
Gönderen: ozgurelkt - 10 Ocak 2017, 19:15:31
main kısmında

while(1)
{
    if(input(buton))

       {   
             delay_ms(50); //buton sönümü için 
                  i=i+1;
                if(i==10)
                              {
                                   i=0;
                              }
                       

                     for(j=0;j<8;j++)// dizinden seçtiğiniz sayının bitlerini tek tek yollamak için oluşturulan döngü
         
                                  {    output_bit(pin_b0,bit_test(goster,j)); // 74hc164 data ucu  B0 pinine bağlı veriler buradan bit bit yollanıyor.

                                                   output_high(pin_b1);  // 74hc164 clock ucu  B1 bağlı   
                                                   output_low(pin_b1);
}
               delay_ms(1000); // her sayı görülebilsin diye 1 sn gecikme.

}

gibi..  yapılabilir .. for döngüsü yerine butona bastığınızda i değeri artacak .
Başlık: Ynt: 74hc164 ilgili
Gönderen: ByTEK - 10 Ocak 2017, 20:39:37
Alıntı yapılan: ferit06 - 10 Ocak 2017, 13:55:43
ete hocanın bakmasını istediğiniz devre bir fantezi amaçlı( hadi biraz yummuşatayım deneysel diyelim) bir devre şöyleki;
-12F675 li bir termometre yapalım demişler ama hem 8 pinli bir pIC, hem 14 bacaklı bir Logic devre hem de 3 transistor kullanımı gerektiriyor.
-Bu tür bir kullanıma; elde bulunan kullanılacak ucuz bir PIC in yetersiz olan PIN sayısını genişletmek ve pahalı bir PIC kullanmamak ( yer meselesine giremiyorum daha fazla yer kaplıyor) amacıyla gidilir.

Buna göre toplam maliyeti daha düşük olacak ve daha derli toplu olacak,  bir  ADC modülü içeren 18 pınli PIC ( 16F88, 16F819, 16F1827 vb) ile çözüm elde edebilirsiniz.

Ama ben illa 74HC164 gibi bir Logic devre kullanacğım derseniz datasheets(https://www.google.com.tr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwj-n8r6tLfRAhXByRQKHYe_DtsQFggiMAA&url=http%3A%2F%2Fwww.nxp.com%2Fdocuments%2Fdata_sheet%2F74HC_HCT164.pdf&usg=AFQjCNGj6lh5QweL9bj4aCNfwYUrdl3gdw&cad=rja) inden kullanımı hakkında bilgi alabilirsiniz.

Hocam Doğru Tahmin. Tamamen fantezi amaçlı yaptığım bir devreydi.

Aslında amacım 8 pin bir MCU ile nasıl display sürülür vs idi ortaya bu çıktı.

@serkancetin

Kabaca 74hc164 seri girip paralel çıkış veren bir entegredir. Çıkış pinlerine Display bağladığımızda uygun çıkışları etkin yaparsak displayede bir görüntü oluştururuz.

Teknik olarak arkadaşlar örnek komutlar vermiş. Netten "PIC ile shift register kullanımı" olarak aratırsan sonuç elde edeceksin.
Başlık: Ynt: 74hc164 ilgili
Gönderen: sifirzero - 10 Ocak 2017, 20:42:35
Sercan hocam sitendende yazdim size.bende ccs c ile yapmak istedim.ama bilgi gonderemedim
Başlık: Ynt: 74hc164 ilgili
Gönderen: sadogan - 10 Ocak 2017, 21:16:12
Form da 74hc595 diye arayin .Çok ornek var
Başlık: Ynt: 74hc164 ilgili
Gönderen: sifirzero - 10 Ocak 2017, 21:23:41
@sadogan  ustam çik iyi oldu.bu siteyi bu yüzden seviyorum.bilgiyi saklamıyorlar.
Başlık: Ynt: 74hc164 ilgili
Gönderen: baran123 - 10 Ocak 2017, 21:56:07
74HC595 için fonksiyon.
XC8 de hazırlamıştım. CCS C ye dönüştürebilirsin. HC595_STCP kısmını silersen 74HC164 e göre olur.



#define HC595_SHCP     (LATAbits.LATA0)
#define HC595_DS       (LATAbits.LATA1)
#define HC595_STCP     (LATAbits.LATA2)

static uint8_t hc595_digit[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; // Ortak Anot için
//static uint8_t hc595_digit[10] = {0x03, 0x9F, 0x25, 0x0D ,0x99, 0x49, 0x41, 0x1F, 0x01, 0x09};  // Ortak katot için

/*****************************************************
* Function Name : HC595_Write
* Description   :
* Input         : uint8_t data
* Return        : None
******************************************************/
void HC595_Write(uint8_t data)
{
    for (uint8_t i = 0x80; i > 0; i >>= 1)
    {
        HC595_DS = (data & i) ? 1 : 0;
       
        HC595_SHCP = 1;
        Delay_us(1);
        HC595_SHCP = 0;
        Delay_us(1);
    }
    HC595_STCP = 1;
    Delay_us(1);
    HC595_STCP = 0;
    Delay_us(1);
}
Başlık: Ynt: 74hc164 ilgili
Gönderen: ByTEK - 10 Ocak 2017, 22:35:27
Alıntı yapılan: serkancetin - 10 Ocak 2017, 20:42:35
Sercan hocam sitendende yazdim size.bende ccs c ile yapmak istedim.ama bilgi gonderemedim

Gördüm hocam.

aşağıdaki linki incelemenizde fayda var. Ama dikkat edin 74HC164 shiftregisterda 12.PIN, ST_CP, Storage register clock pin (latch pin) yoktur. Bundna dolayı 2 pin ile kullanılır.

http://ustaderslik.com/konu/CCS_C_74HC595_Basit%C3%A7e_Kullan%C4%B1m%C4%B1
Başlık: Ynt: 74hc164 ilgili
Gönderen: Z80 - 11 Ocak 2017, 00:59:41
CCS C ile 74HC595 fonksiyonu:

#bit   SH_CLK      =  PORTA.0                                       // 74HC595 SH-CP
#bit   SH_DATA1     =  PORTA.1                                      // 74HC595 DS
#bit   SH_LOAD    =  PORTA.2                                      // 74HC595 ST-CP

int DATA;                                                                   // 74HC595 datasi
signed int index;

void   _74HC595_YAZ()
{
           for    (index = 7; index > -1; index--)
      {      
          SH_DATA1      =     bit_test(DATA,index);
          SH_CLK            =     (1);
          SH_CLK            =     (0);
      }
          SH_LOAD    =     (1);
          SH_LOAD    =     (0);
}

Başlık: Ynt: 74hc164 ilgili
Gönderen: roteks - 01 Şubat 2019, 11:17:46
Alıntı yapılan: sadogan - 10 Ocak 2017, 21:16:12Form da 74hc595 diye arayin .Çok ornek var
S.a evet çok örnekle birlikte daha çok kafa karıştırıcı oluyor benim de bir kaç sorum var hc595 ile ilgili yardımcı olur musun?
Başlık: Ynt: 74hc164 ilgili
Gönderen: sadogan - 01 Şubat 2019, 19:47:53
Alıntı yapılan: roteks - 01 Şubat 2019, 11:17:46S.a evet çok örnekle birlikte daha çok kafa karıştırıcı oluyor benim de bir kaç sorum var hc595 ile ilgili yardımcı olur musun?
Siz sorularınızı sorun , yardımlar gelecektir diye düşünüyorum.
Başlık: Ynt: 74hc164 ilgili
Gönderen: roteks - 04 Şubat 2019, 11:11:26
Öncelikle herkese kolay gelsin, şimdiden yanıt verenlere teşekkür ederim.
Amatör olarak uğraşıyorum ve öğrenmeye çalışıyorum, ccs c kullanıyorum. Sorularımı anlatır tarzda sormak istiyorum doğru yanlış şu şekilde olmalı diye beni yönlendirmenizi rica ediyorum.Bir çok display uygulaması var fakat yapmak istediğim sonuca gidemedim (tek hc595 ile 14mm 3lü bitişik display çalıştırmak) şuan için hala uğraşıyorum ve temel konularda sıkıntı yaşıyorum,
74HC595 ile ilgili yaptığım araştırmalara göre;
1)Hc595 8 bitlik veriyi tutuyor ve ilgili uçlarına verilen pulsler ile bilgiyi içeri alıp gene ilgili uçlarına verilen pulsler ile dışarı veriyor sırasıyla bu işi sürekli yaptırarak display de göz yanılgısı ile süreklilik sağlanıyor?
2)Tekli display ile sorun yok yada birden fazla tekli display için serdar çiçeğin kitabında ki örnekleri uyguladım sorun yok, HC595 ile olan örnekleri de inceledim mesela https://www.picproje.org/index.php/topic,52923.0.html (https://www.picproje.org/index.php/topic,52923.0.html) bu link deki uygulama da anlamadığım daha doğrusu birden fazla HC birbirine bağlanıp veriyi kaydırma ile çoğaltılmış peki display seçim uçlarına ne oldu aktif pasif yapılan display uçları iptal mi oluyor böyle olunca iptalden kastım programda yanlış okumuyorsam bununla ilgili birşey yok transistörlere ne oldu?
3)Sonuç olarak yapmak istediğim 3digit yapışık display bir tane HC595 ile çalıştırmak?
Başlık: Ynt: 74hc164 ilgili
Gönderen: sadogan - 04 Şubat 2019, 22:04:26
Bahsettiğin olayın direk olarak 74hc595 ile bir ilgisi yok.
Bu yapıya multiplex çalışma deniyor.
Başlık: Ynt: 74hc164 ilgili
Gönderen: M.Salim GÜLLÜCE - 05 Şubat 2019, 16:13:00
Alıntı yapılan: mehmet - 10 Ocak 2017, 17:34:35İşe yarar belki...
https://www.picproje.org/index.php/topic,62398.msg483324.html#msg483324
Link kırık..
Düzeltme: epeyce eski bir mesajmış
Başlık: Ynt: 74hc164 ilgili
Gönderen: roteks - 05 Şubat 2019, 17:10:20
Alıntı yapılan: sadogan - 04 Şubat 2019, 22:04:26Bahsettiğin olayın direk olarak 74hc595 ile bir ilgisi yok.
Bu yapıya multiplex çalışma deniyor.

Anlamadım??
Başlık: Ynt: 74hc164 ilgili
Gönderen: yesilu - 06 Şubat 2019, 09:37:33
3 lü 7 segmenti minimum 1 hc595 + (mcu dan) data, clock, latch pinleri ve 3 tarama pini ile sürebilirsin
Başlık: Ynt: 74hc164 ilgili
Gönderen: roteks - 06 Şubat 2019, 10:27:20
Alıntı yapılan: yesilu - 06 Şubat 2019, 09:37:333 lü 7 segmenti minimum 1 hc595 + (mcu dan) 1 data + 3 tarama pini ile sürebilirsin
Elinizde örnek varmı? Nasıl yapmalı nasıl yazmalı programı?
Başlık: Ynt: 74hc164 ilgili
Gönderen: mehmet - 06 Şubat 2019, 21:09:05
İki HC595 ile yapılabilir.
Hatta ikisi ile 8 digit sürmek
mümkün.
Bir 595 segmentlere diğeri
de digitlere.
Birleşik displayler taranarak
sürülmeli.

https://yadi.sk/i/nspSGV2S33MjJg
Başlık: Ynt: 74hc164 ilgili
Gönderen: roteks - 11 Şubat 2019, 12:17:13
Ortak anot yada katot olması neyi değiştirir daha doğrusu neye göre seçilir uygulamalarda hangisi daha çok tercih edilir? Sebebi nedir?
Display sürerken ortak katot kullanınca displayin ledleri +5v'u hc595 den mi sağlıyor? Yoksa gene pic den mi alıyor?
Sorularımın sebebi devremde rölelerden dolayı uln2803 kullanıyorum, bunu display için de kullanacağım digit seçimi yapacağım o yüzden uln'ye eksi girmem lazımmış? Fakat displaylerin enerjisini pic'den alsın istemiyorum başka kaynaktan beslensin pic'e yüklenmesin?
Başlık: Ynt: 74hc164 ilgili
Gönderen: mehmet - 12 Şubat 2019, 21:04:18
Low side yarı iletlenler daha
uygun fiyatlı ve kontrolleri
daha kolay.
Genellikle ortak anot kullanılıyor
bu yüzden.
Hatta TPIC6B595 bu konuda fena
değil.