/****************************************************** Uygulama Adı : Yürüyen Işık PIC PROG/DEKA : Port B jumper'ı LED konumunda olmalı *******************************************************/ #include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor. #fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları #use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor int i, led; //i ve led isminde tam sayı tipinde 8 bitlik değişkenler tanıtılıyor. /********* 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_b(0x00); // B portu tümüyle çıkış olarak yönlendiriliyor output_b(0x00); // B portu çıkışları sıfırlanıyor while(1) { led=1; //led değişkeni değeri 1 oluyor for(i=0;i<=7;i++) // for döngüsü oluşturuluyor { output_b(led); // led değişkeni değeri B portuna gönder led=led<<1; // led değişkeni değerini 1 bit sola kaydır delay_ms(100); // 100 msn'lik gecikme veriliyor } led=0x80; //led değişkenine değer yükleniyor output_b(led); //B portuna 0b10000000 bilgisi gönderiliyor delay_ms(100); // 100 msn'lik gecikme veriliyor for(i=0;i<=6;i++) // for döngüsü oluşturuluyor { led=led>>1; // led değişkeni değerini 1 bit sağa kaydır output_b(led); // led değişkeni değeri B portuna gönder delay_ms(100); // 100 msn'lik gecikme veriliyor } } }