Ana Sayfa Elektronik Öğrenin Programlama genel C ile programlama uygulamaları-13

C ile programlama uygulamaları-13

0

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(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

} } }

İŞLEM BASAMAKLARI

1.Devreyi bord üzerine kurunuz.

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

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

YORUM YOK

CEVAP VER

Please enter your comment!
Please enter your name here

Exit mobile version