Timer1 Uygulaması-1

AMAÇ:

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

YAPILACAK İŞ:

Timer1 kesmesinin kullanılmasını öğrenmek.

DENEYİN BAĞLANTI ŞEMASI

    PROGRAM KODU:

#include <16f877a.h>

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

#use delay (clock=4000000)

#use fast_io(b)

int i=0;

//****************** Timer0 Kesmesi *****************************

#int_timer1

void timer1_kesme ()

{

set_timer1(63036);

i++;

if (i==50)

output_high(pin_b0);

if (i==100)

{

output_low(pin_b0);

i=0;

}

}

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

void main ( )

{

setup_psp(PSP_DISABLED); // PSP birimi 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);

output_b(0x00);

setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);

set_timer1(63036);

enable_interrupts(INT_timer1);

enable_interrupts(GLOBAL);

while(1);

}

İŞ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

Please enter your comment!
Please enter your name here