25 Şubat 2014 Salı

C ile programlama uygulamaları-13

PWM Modu Uygulaması_2



AMAÇ:



Mikrodeneleyicilerin çalışma sistemini öğrenmek, C dili ile program yazabilme ve 16F877A entegresini programlayabilme yeteneğini kazanmak.


YAPILACAK İŞ:



PWM sinyalinin butonlarla arttırılıp azaltılması sağlanacak.


DENEYİN BAĞLANTI ŞEMASI




    PROGRAM KODU:



#include <16f877a.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.



#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD



#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.



#use fast_io(a) //Port yönlendirme komutları A portu için geçerli



#use fast_io(c) //Port yönlendirme komutları C portu için geçerli



int i=65; // Tamsayı tipinde değişken tanımlanıyor



/******** ANA PROGRAM FONKSİYONU********/



void main ( )





setup_psp(PSP_DISABLED); setup_timer_1(T1_DISABLED);



setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF);



set_tris_a(0×03); // RA0 ve RA1 pinleri giriş



set_tris_c(0×00); // C portu komple çıkış



setup_ccp1(CCP_PWM); // CCP1 birimi PWM çıkışı için ayarlandı



setup_timer_2(T2_DIV_BY_16,i,1); // Timer2 ayarları yapılıyor



set_pwm1_duty(50); // PWM1 çıkışı görev saykılı belirleniyor



while(1) // Sonsuz döngü





if (input(pin_a0)) // Eğer RA1 girişine bağlı butona basılırsa





delay_ms(20); // Buton arkı önleme gecikmesi



while(input(pin_a0)); // Basılı butondan el çekile kadar bekle



i+=5; // i=i+5 anlamındadır.



if (i>250) // i değeri 250′dan büyükse i değeri 250 olsun



i=250;



setup_timer_2(T2_DIV_BY_16,i,1); // Timer2 ayarları yapılıyor





if (input(pin_a1)) // Eğer RA0 girişine bağlı butona basılırsa





delay_ms(20); // Buton arkı önleme gecikmesi



while(input(pin_a1)); // Basılı butondan el çekile kadar bekle



i-=5; // i=i-5 anlamındadır.



if (i<65) // i değeri 65′den küçük ise i değeri 65 olsun



i=65;



setup_timer_2(T2_DIV_BY_16,i,1); // Timer2 ayarları yapılıyor





İŞLEM BASAMAKLARI



1.Devreyi bord üzerine kurunuz.



2. Kodu yazıp derleyiniz.Hex kodunu Pice yükleyiniz.



3.Devrenin çalışmasını inceleyiniz.





C ile programlama uygulamaları-13

Hiç yorum yok:

Yorum Gönder