Anasayfa > Pic Programlama > PIC16F877 ile PWM Modu Uygulaması-2

PIC16F877 ile PWM Modu Uygulaması-2

/******************************************************
PIC16F877 ile PWM Modu Uygulaması-2
*******************************************************/
#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ı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); // PSP birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı

set_tris_a(0x03); // RA0 ve RA1 pinleri giriş
set_tris_c(0x00); // 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
}
}
}
Ek: CCS C , Proteus, Hex dosyaları

  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: