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.