"Karmaşıklığı kontrol etmek Programlamanın en asıl işidir."

74HC595 hakkında bilgi etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
74HC595 hakkında bilgi etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Ağustos 2014 Çarşamba

CCS C 74HC595 Basitçe Kullanımı

0 yorum


CCS C 74HC595 Basitçe Kullanımı ve Örnek




15,1..7 nolu bacaklar = Paralel Veri Çıkışları

8 nolu bacak = GND (-)

9 nolu bacak = Seri Veri Çıkışı (seri başka bir 74hc595 bağlamak için)

10 nolu bacak Master Reset Ucu = Burası LOW(-)'da tutulmalıdır yoksa 74hc595 kendisini sürekli resetlicektir 

11 nolu bacak shift register clock girişi = clock palse verilir, 14 nolu bacaktan veri kaydırılarak içeri alınır (clock palse vermek için bu bacağa önce 1 sonra 0 verilir)

12 nolu bacak storage register clock girişi = 11 ve 14 nolu bacaklar sayesinde içeri uygulanan clock palse sayesinde paralel veri çıkışlarına verilir

13 nolu bacak output enable ucu = aktif edilmek için LOWda tutulmalıdır

14 nolu bacak = seri veri girişi

16 nolu bacak = VCC(+)

yani kısaca 11 nolu bacağa vurulan clock palse ile 14 nolu bacaktan veri içeri alınır 12 nolu bacak sayesinde çıkışa verilir.

Basit Bir Örnek ; 74hc595 kullanarak 0-99 sayıcı





//==============================================================================
#include <16F876.h>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected,
#use delay (clock=20000000) 
//==============================================================================
#define hcdata pin_b0
#define hcclock pin_b1
#define hcload pin_b2
//==============================================================================
const int digit[10]={0xC0,  // 0
                     0xF9,  // 1
                     0xA4,  // 2
                     0xB0,  // 3
                     0x99,  // 4
                     0x92,  // 5
                     0x82,  // 6
                     0xF8,  // 7
                     0x80,  // 8
                     0x90}; // 9
int say=0;
int saybirler=0;
int sayonlar=0;
//==============================================================================
void hc595_yolla(unsigned char veri)
{
   unsigned  char i;
   for(i=0x80;i>0;i>>=1)
   {
      if(i&veri)output_high(hcdata);
      else  output_low(hcdata);  
      output_high(hcclock);
      output_low(hcclock);
   } 
}
//==============================================================================
void main () {
while (1){
say=0;
for (say=0;say<99;say++){
sayonlar=say/10;
saybirler=say%10;
hc595_yolla(digit[saybirler]); 
hc595_yolla(digit[sayonlar]);
output_high(hcload);
output_low(hcload);
delay_ms(1000);
}
}
}
//==============================================================================

İletişim Formu

Ad

E-posta *

Mesaj *