/****************************************************** Uygulama Adı : Display Uygulaması-1 (0-F Sayıcı) PIC PROG/DEKA : Port B jumper'ı 7-seg konumunda olmalı *******************************************************/ #include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor. //***********Denetleyici konfigürasyon ayarları************ #fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD #use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor int i; // i isminde 8 bitlik bir değişken tanıtılıyor. // Ortak katot display için veri değerleri const int digit[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71}; /********* ANA PROGRAM FONKSİYONU********/ void main () { setup_psp(PSP_DISABLED); // PSP birimi devre dışı setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok setup_adc(ADC_OFF); // ADC birimi devre dışı setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı set_tris_a(0x00); // A portu tümüyle çıkış olarak yönlendiriliyor set_tris_b(0x00); // B portu tümüyle çıkış olarak yönlendiriliyor output_b(0x00); // B portu çıkışları sıfırlanıyor output_a(0x02); // RA1 pini lojik-1 yapılıyor, diğer pinler lojik-0 while(1) // Sonsuz döngü oluşturuluyor { for(i=0;i<=15;i++) { output_b(digit[i]); // digit[i] değerini B portuna gönder delay_ms(500); // 500 msn bekle } } }