Menu

Daxil olun Qeydiyyat

Mikrokontroller Texnikasi

PİC16Fxx mikrokontrollerində kəsilmənin təşkili

PİC16Fxx mikrokontrollerində kəsilmənin təşkili

PIC tipli MK əsasında yaradılmış idarə qurğuları tərəfindən müəyyən hadisələrin baş verməsinə qarşı cavabı hasil etmək üçün kəsilmə mexanizmindən istifadə edilir.Belə hadisələrin qurğuda izlənilərək aşkar edilməsi və baş vermiş hadisələrə uyğun olaraq müəyyən əməliyyatların yerinə yetirilməsi PIC daxilində nəzərdə tutulmuş kəsilmənin xüsusi aparat vasitələri və kəsilməyə xidmət proqramı hesabına gerçəkləşdirilir. Əsas proqramın yerinə yetirilməsinin ixtiyarı zamanında müxtəlif mənbələrdən kəsilmə siqnallarının daxil olmasının aşkarlanması və bu siqnallara cavab verilməsinə icazənin proqramlaşdırılması üçün PIC tipli MK daxilində kəsilmənin idarəsi registri (INTCON) vardır. Bu registrin bitləri əsas və kəsilməyə xidmət proqramlarınında elə təyin edilməlidir ki,əsas proqramın yerinə yetirilməsi prosesində lazımi kəsilmə siqnallarına cavab verilməsi mümkün olsun və kəsilməyə xidmət proramı başqa bir siqnalla kəsilmədən başa çatdırılsın. PIC-lərin müxtəlif modellərində periferiya modullarının sayı və deməli, kəsilmə siqnalı məbələrinin sayı müxtəlif olduğundan INTCON registrinin strukturu da fərqli olur.

PIC16F84–də kəsilmənin təşkilinin ümumi sxemi şək.4.17-də göstərilmişdir.Əsas proqramın əmrləri Program yaddaşına 000H ünvanından başlayaraq yüklənir.Proqramın icrası müddətində baş verməsi gözlənilən hadisəyə uyğun olaraq istifadəçi tərəfindən tərtib edilmiş kəsilməyə xidmət alt proqramı Program yaddaşının müəyyən ünvanından başlayaraq yüklənilir və bu alt proqrama keçid üçün 0004H ünvanlı oyuqda GO TO < kəsilməyə xidmət alt proqramının başlanğıc ünvanı > əmri yerləşdirilir. Sistemdə izlənilməli olan müxtəlif tipli kəsilmə siqnallarına uyğun sayda xidmət alt proqramları tərtib edilir və onların tipinə uyğun keçidlər göstərilən GO TO əmrləri ilə təmin edilir.Əsas proqramın ixtiyari bir yerində cavabına icazə verilmiş hər hansı kəsilmə siqnalının daxil edilməsi aşkar edilirsə ,onda növbəti əmrin ünvanını göstərən PC(Program Counter) registinin məzmunu MK daxilindəki STACK registrində saxlanılır və 0004H ünvanlı əmrə keçid edilir.Yerinə yetirilməyə başlanan kəsilməyə xidmət alt proqramının ilk əmrlərində lazım olmayan kəsilmə siqnallarına cavab verilməsi qadağan edilir və sondakı RETFIE əmri isə əsas proqrama qayıdışı təmin edir.Bu zaman STACK-nin məzmunu PC registrinə yüklənir və kəsilmə siqnallarına cavab verilməsinə icazə yenidən bərpa edilir.

PIC16F84 tipli MK-nın daxilindəki modullara uyğun olaraq kəsilmə siqnalları aşağıdakı mənbələrdən gələ bilər:

Xarici kəsilmə - PIC-nin B portunun RB0/INT xəttinə bağlanmış hər hansı elektron dövrəsindən;

TMR0 taymerdən - sayma prosesində TMR0 registrinin məzmununun FFH-dan 00H-a keçid zamanı yaranan kəsilmə siqnalı ilə;

Port B-nin B(4-7) xətlərindəki kodun dəyişməsi ilə;

EEPROM yaddaşa yazmanın tamamlama prosesində yaranan kəsilmə siqnalı ilə.

Bu mənbələrdən gələn kəsilmə siqnallarınn aşkar edilməsi və onlar tərəfindən proqramın kəsilməsinə icazə verilməsi üçün PIC16F84-dəki INTCON registrinin strukturu şək.4.18-də göstərilmişdir. RB(0) və RB(4-7) xətlərindən gələn kəsilmə siqnallarının qəbuluna əsas proqramdakı hazırlıq və bu siqnallarının qəbulundan sonra kəsilməyə xidmət alt proqramında yerinə yetirilən alqoritmlərin blok-sxemləri şək.4.19-da verilmişdir. RB0/INT giriş xətti ilə qəbul edilən siqnalın aktiv cəbhəsi OPTION registrinin INTEDG biti ilə əvvəlcədən təyin edilmiş olur.

Şək.4.20-də PIC16F84-nin ğiriş portlarına bağlanan K1,K2 açarları ilə çıxış portlarınndakı LED1,LED2-lərin vəziyyətinin kəsilmə vasitəsiə idarə edilməsi sxemi və LED-lərin işıqlanmasının zaman diaqramı göstərilmişdir. Əsas proqramın kəsilməsi RB0/INT xarici kəsilmə xəttinə bağlanmış K2 düyməsinə basmaqla baş verir və buna cavab olaraq RB(1)-ə bağlanan LED1 sönür, RB(2) xəttindəki LED2 isə yanmağa başlayır. MK-nın RA(0) xəttinə bağlanmış K1 açarı əsas proqramın icra edilməsi prosesində RB(1)-ə bağlanan LED1-nin işıqlanma vəziyyətini idarə edir.Belə ki,əsas proqramın başlanğıcında yandırılaraq bu vəziyyəti saxlanılan LED1-nin müvəqqəti olaraq sönməsi K1 açarına basmaqla əldə edilir ki,bu da əsas proqramın icra edilməsini nümayiş kəsilməyə xidmət alt proqramı daxilində LED2-nin vəziyyəti idarə edilir.Bu alt proqramın icra edildiyi müddətdə LED2 yanılı vəziyyətdə qalır və başa çatdıqda isə söndürülür . Əsas proqrama qayıdış yenidən LED1-nin yanmasını təmin edir. Baxılan misal halında əsas programda və kəsilməyə xidmət alt proqramında yerinə yetirilən alqoritmin blok-sxemi şək.4.21-də göstərilmişdir. Burada LED-lərin yanılı vəziyyətlərinin saxlanıldığı zaman gecikməsinin programla hasil edildiyi nəzərdə tutulur.

Şək.4.22-də PIC16F84 daxilindəki TMR0 taymerindən istifadə etməklə onun çıxışından verilən TOIF siqnalı ilə kəsilmə siqnalının yaradıldiği halda RB(1) və RB(2) xəttinə bağlanmış LED1 və LED2 -nin yanıb/sönməsini idarə edən sxem və onun işinin zaman diaqramı göstərilmişdir. Əvvəlki misaldan fərqli olaraq burada LED-lərin yanma/sönmə zaman müddətləri,eləcə də yanıb-sönmələrin sayı proqramla deyil,aparatla TMR0 taymrinin məzmunundan asılı olaraq hasil edilir.LED1-nin vəziyyəti əsas proqramdan,LED2 isə kəsilməyə xidmət alt proqramından idarə edilir.Belə ki, əsas proqramın kəsilənə qədər yerinə yetirildiyi müddətdə LED1 8 dəfə yanıb-sönür.Bundan sonra isə TMR0-nın məzmunu daşdığından (FFH-dan 00H-a keçid) INTCON registrindəTOIF bayrağı qaldırılır və əsas proqramda baş verən kəsilmə nəticəsində LED1 axırıncı dəfə olduğu sönmüş vəziyyətində qalır. İnterruptə xidmət alt proqramının icrası zamanı LED2 yanıb-sönməyə başlayır və onun işi növbəti dəfə TMR0 –nın daşması ilə əlaqədar kəsilmədən yekunlaşmış olur.Qeyd etmək lazımdır ki,LED-lərin hər dəfədə yanması/sönməsi müddətləri TMR0(4)=1/0 əlamətlərinin saxlanıldıği zaman gecikməsi ilə təyin edilir.Bu misalın gerçəkləşdirilməsi üçün əsas proqramın və kəsilməyə xidmət alt proqramının,eləcə də aparatlı gecikmə alqoritmlərinin blok-sxemləri şək.4.23-də göstərilmişdir.

PIC MK-nin daha yüksək modellərində INTCON registri vasitəsilə TMR1/2 taymerlərdən,ardıcıl USART və sinxron portlardan,ADC/DAC-dən,paralel portdan,qida gərginliyi blokundan,şindəki konfliktdən yaranan interrupt siqnallarının qəbulunun proqramlaşdırılması imkanı nəzərdə tutulmuşdur.


Bizi dəstəkləyənlər