1 / 20

DERS 1 2 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI

DERS 1 2 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI. İÇERİK. KESME NEDİR KESME ÇEŞİTLERİ INTCON SAKLAYICISI RBO /INT KESMES İ PORTB (RB4-RB7) LOJİK SEVİYE DEĞİŞİKLİK KESMESİ. KESME.

burian
Download Presentation

DERS 1 2 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI

  2. İÇERİK • KESME NEDİR • KESME ÇEŞİTLERİ • INTCON SAKLAYICISI • RBO/INT KESMESİ • PORTB (RB4-RB7) LOJİK SEVİYE DEĞİŞİKLİK KESMESİ

  3. KESME • PIC’in bazı portlarındaki veya yapısında bulunan bir sayıcıda belli şartların oluşması durumunda, çalışmakta olan programın geçici olarak kesilerek (ara verilerek) ayrı bir alt programın işletilmesi ve bu alt programın bitiminde de tekrar ara verilen programa kalındığı noktadan geri dönülmesi işlemidir. • Bunun alt program işletilmesinden farkı; • Alt program kullanıcı tarafından istenilen anda CALL komutu ile çağrılır • Interrupt donanım tarafından belli şartlar oluştuğunda başlatılır

  4. KESME İŞLEM ADIMLARI • Bir interrupt oluştuğunda o an çalışmakta olan komut tamamlanır • Sonraki çalışacak komutun bulunduğu program belleği adresi (Program Counter saklayıcısının değeri) yığın saklayıcısına (Stack) atanır • Programın işletilmesi standart kesme programının başlangıç adresi olan h’04’ adresine dallanılır (kesme alt programı işletilir) • RETFIE komutu ile kseme alt programı sonlandırılır • STACK’de bulunan değer PC’ye aktarılır ve çalışmakta olan programa kaldığı yerden devam edilmiş olur

  5. KESME İŞLEM ADIMLARI Kesme programının işletilmesi adımları, Mikrodenetleyiciler ve PIC Prog., sayfa 158

  6. KESME TÜRLERİ • PIC 16F84’de interrupt oluşturan 4 kaynak vardır: • RB0/INT ucuna gelen lojik 1 veya 0 sinyali ile • TMR0 sayıcısından gelen zaman aşımı ile • PORTB 4.-7. Bitleri lojik seviye değişikliği ile • Veri belleğine yazma işleminin tamamlanması ile

  7. INTERRUPT İŞLEMİNİN KONTROLÜ • Interrupt işlemlerini düzenleyip kontrol etmek amacıyla INTCON file register’ı kullanılır. • Bu file register iki amaçla kullanılır: • Belirli tür kesme işlemlerine izin verme • Kontrol bayrakları (flag) sayesinde bir kesme oluştuğunda hangi tür olduğunu belirlemede

  8. INTCON SAKLAYICI INTCON saklayıcı bitlerin açıklaması, Mikrodenetleyiciler ve PIC Prog., sayfa 164

  9. INTERRUPT İŞLEMİNİN KONTROLÜ • INTCON file register’ının 7. Bit olan GIE aslında donanım tarafından kullanılır: • Bir kesme oluştuğunda GIE ‘0’ olur • Bu sayede kesme alt programı çalışırken oluşabilecek yeni bir kesme ile kesme programının çalışması aksamaz • RETFIE komutu ile ana programa geri dönüldüğünde ise GIE ‘1’ yapılır • Bu sayede de olası sonraki kesmelerin geçerli olması (enable) sağlanır • Dolayısıyla bu bayrağın kontorlünün alt programda ele alınması gerekmez.

  10. RB0/INT KESMESİ • Bu PIC’ın RB0/INT ucundan gelen lojik 0 veya 1 sinyali ile kesme oluşturması işlemidir • Mesela şu ana kadar programlarımızda bir tuşa basılı olduğunu anlamak için sanki ana programda bir parçasıymış gibi sürekli olarak bunu kontrol ettiriyorduk • Bu kesmenin kullanımı ile ana program asıl işlevini yaparken tuşa basıldığı bir kesme ile haber verilir ve gerekenler ilgili alt programda yapılabilir

  11. RB0/INT KESMESİ • RB0/INT interrupt’ı kullanabilmek için • RB0/INT bacağı giriş olarak programlanmalı • INTCON saklayıcısı içerisindeki INTE biti 1 yapılarak bu kesmeye izin verilmeli • Bu uçtan gelen sinyalin 01 geçişinde mi yoksa 10 geçişinde mi kesme oluituracağı belirlenmelidir. Bu amaçla kullanılan OPTION saklayıcısının 6.biti (INTEDG): • 0= düşen kenarda kesme • 1 = yükselen kenarda kesme oluşturur

  12. RB0/INTKESMESİ ALT PROGRAMI • Burada dikkat edilecek noktalar: • Programın başlangıcında INTE bitini 0 yap • Alt program işlemlerini gerçekleştir • INTF bayrağını 0 yap • INTE bitini 1 yap • RETFIE ile alt programdan dön

  13. RBO/INT kesmesi için bir örnek program akış diyagramı, Mikrodenetleyiciler ve PIC Prog., sayfa 165

  14. RBO/INT kesmesi için bir örnek program, Mikrodenetleyiciler ve PIC Prog., sayfa 165

  15. RBO/INT kesmesi için bir örnek program, Mikrodenetleyiciler ve PIC Prog., sayfa 165

  16. PORTB (RB4-RB7)LOJİK SEVİYE DEĞİŞİKLİK KESMESİ • Bu PIC’in RB4-RB7 pinlerinin lojik seviyelerinde değişiklik olması durumunda bir kesmenin oluşması olyıdır • Genellikle enerji kaynaklarından tasarruf etmek için bir işlemin yapılmadığı uyku modunda bulunan PIN’i aktif hale getirmede kullanılır • Mesela klavyede bir tuşa basıldığında PIC bunu bir kesme olarak algılar ve normal çalışmasına başlar

  17. PORTB (RB4-RB7)LOJİK SEVİYE DEĞİŞİKLİK KESMESİ • RB4-RB7 interrupt’ı kullanabilmek için • RB <4:7>uçları giriş olarak programlanmalı • INTCON saklayıcısı içerisindeki RBIE biti 1 yapılarak bu kesmeye izin verilmelidir

  18. RB4-RB7KESMESİ ALT PROGRAMI • Burada dikkat edilecek noktalar: • Programın başlangıcında RBIE bitini 0 yap • Alt program işlemlerini gerçekleştir • RBIF bayrağını 0 yap • RBIE bitini 1 yap • RETFIE ile alt programdan dön

  19. RB4-RB7 kesmesi için bir örnek program, Mikrodenetleyiciler ve PIC Prog., sayfa 170

  20. DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI - SON- Kaynak: Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN 975-883-409-6

More Related