PWM Modu Uygulaması-1

AMAÇ:

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

YAPILACAK İŞ:

PWM sinyallerinin frekansı sabit kalarak görev çevrimi sürelerinin değiştirilmesi işlemi incelenecek.

DENEYİN BAĞLANTI ŞEMASI

    PROGRAM KODU:

#include <16f877a.h>

#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=5; // 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);

set_tris_c(0x00);

setup_ccp1(CCP_PWM);

setup_ccp2(CCP_PWM);

setup_timer_2(T2_DIV_BY_16,170,1);

set_pwm1_duty(i);

set_pwm2_duty(i);

while(1)

{

if (input(pin_a0))

{

delay_ms(20);

while(input(pin_a0));

i+=3; //

if (i>=170)

i=170;

set_pwm1_duty(i);

set_pwm2_duty(i);

}

if (input(pin_a1))

{

delay_ms(20);

while(input(pin_a1));

i-=3;

if (i<5)

i=5;

set_pwm1_duty(i);

set_pwm2_duty(i);

}

}

}

İŞLEM BASAMAKLARI

1.Devreyi bord üzerine kurunuz.

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

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

DEĞERLENDİRME ÇALIŞMALARI

1.Kodların yanına açıklamalarını yazınız.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz