Pic 16f84 Harici Kesme

Verilen devrede buton yapısı pull up şeklindedir.Butona basıldığında B0 pini “High” durumdan “Low” duruma düşücektir.

Bu nedenle kesme oluşumunu yakalamak için ana programda ext_int_edge(H_TO_L); komutu kullanılmıştır. Butona basıldığınde program kesme rutinine giderek ledin durumunu değiştirecektir.

  
#include <16F84A.h>
#fuses HS,NOWDT,PUT,NOPROTECT
#use delay(crystal=8000000)

#INT_EXT
void ext_isr(void)
{
 output_toggle(PIN_A0);
}

void main()
{
  output_low(PIN_A0);
  ext_int_edge(H_TO_L);       // Kesme RB0/INT pinindeki düşen kenarda olacak şekilde
  clear_interrupt(INT_EXT);   // Program ilk başında RB0/INT kesme biti temizlenir
  enable_interrupts(INT_EXT); // RB0/INT harici kesme aktif
  enable_interrupts(GLOBAL);  // Kurulan bütün kesmeler aktif

  while(TRUE) ;               // sonsuz döngü
}
Bu yazı CCS C Örnekleri kategorisine gönderilmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.