Menu

Daxil olun Qeydiyyat

Mikrokontroller Texnikasi

PİC16Fxx mikrokontrollerində TMR0 taymerinin və kəsilmənin istifadə edilməsinə aid misallar

PİC16Fxx mikrokontrollerində TMR0 taymerinin və kəsilmənin istifadə edilməsinə aid misallar

PIC16F84 MK-də TMR0 taymerinin say siqnalları mənbəyi kimi daxili əmrlər dövrü seçildiyi halda TMR0-nın parametrlərinin təyini üçün aşağıdakı ifadələrdən istifadə etməklə nümunələri nəzərdən keçirək:

TMR0delay=((256-TMR0ilkin)xPSV)/(F OSCLK/4);

TMR0ilkin =256-( TMR0delayx F OSCLK/4xPSV ) .

1.MK-nın takt siqnalları tezliyi 20MHs,TMR0 taymeri üçün tezliyin bölmə əmsalı 64, TMR0-a ilkin yüklənən say ədədi “00H” olduğu halda zaman gecikməsininin qiymətini və PS(0-2),PSA kodlarını təyin etməli.

FOSCLK=20x106Hs,PSV=64,TMR0ilkin=00H.

TMR0delay=((256-0)x64)/(20x106/4) ≈3.2ms;

PS(0-2)=101;PSA=0.

 

2. FOSCLK=10MHs, PSV=128 halında TMR0delay=2ms zaman gecikməsini hasil etmək üçün TMR0ilkin=?, PS(0-2)=?,PSA=?

TMR0ilkin=256-(2x10-3 s x10x106Hs/4x128) ≈217; TMR0ilkin=D9H;

PS(0-2)=110; PSA=0.

 

3.PIC16F84 MK-nin girişinə qida gərginliyi və takt siqnalları verildikdən 2 mks sonra onun RB1 portuna bağlanmış LED-nin yanmasi və 1mks ərzində yanmış vəziyyətinin saxlanılması üçün yalnız TMR0-dan istifadə edildiyi halda onun hansı parametri tapılmalıdır və qurulması alqoritminin blok-sxemi necədir? Verilmiş PSV=02 qiyməti dəyişmir və

FOSCLK=16MHs-dir .

 

PIC16F84 girişinə qida gərginliyi və takt siqnalları verildiyi andan etibarən taymer işə düşür.TMR0delay=2mks və 1mks zaman gecikmələrini almaq üçün əsas proqramda TMR0 uyğun parametrlərlə 2 dəfə qurulmalıdır.Bu hallarda TMR0delay=2mks /1mks olmaqla TMR0ilkin qiymətləri təyin edilir.

LED yanana qədər:TMR0ilkin= 256-(2x10-6 s x16x106 Hs/4x2)=251; TMR0ilkin=FBH;

LED yandıqdan sonra:TMR0ilkin= 256-(1x10-6 s x16x106 Hs/4x2)=254; TMR0ilkin=FEH;

Əsas proqramda TMR0-nın qurulmasını blok-sxemi şək.4.24-də verilmişdir.Kiçik qiymətli TMR0delay (2mks/1mks) zaman gecikməsini proqramdakı TMR0-nın ilkin və yenidən qurulmaları üçün istifadə edilən əmrlərin yerinə yetirilməsi müddəti hesabına əldə etmək olar.Bu halda baxılan intervaldakı əmrlərin sayı n isə,onda LED yanana qədər gecikmə müddəti TMR0delay=Tinst x n kimi tapılir,burada Tinst =1/(FOSCLK/4) - daxili əmrlər dövrü - PIC16F84-də əmrin yerinə yetirilmə dövrüdür.

4.PIC16F84 MK –nə FOSCLK=4MHs tezlikli takt siqnalları verildikdən 640mks sonra onun RB1 portuna bağlanan LED-nin 320mks müddətində yanmasını təmin edən TMR0 taymerini və TMR0-dən hasil edilən interrupt siqnalına üuyğun xidmət alt proqramının blok-sxemini qurmalı . PSV=64 qəbul etməli. TMR0 –nın qurulması üçün TMR0ilkin qiyməti tapılır.Burada

LED yanana qədər: TMR0delay=640mks; TMR0ilkin= 256-(640x10-6 s x4x106 Hs/4x64)=246; TMR0ilkin=F6H;

LED yanandan sonra: TMR0delay=320mks; TMR0ilkin= 256-(320x10-6 s x4x106 Hs/4x64)=251; TMR0ilkin=FBH;

TMR0delay qiymətləri böyük olduğundan zaman gecikməsinin aparatla hasil edilməsi üçün TMR0 –nın dolması əlamətindən (TMR0=FFH) və T0İF bayrağı ilə baş verən interruptdən istifadə edilir.Belə ki,LED-nin yanmağa başlaması kəsilmə siqnalı ilə,yanmanın davam etdirilməsi isə kəsilməyə xidmət proqramında TMR0-nın daşma əlaməti ilə idarə edilir.Əsas proqramın interrupt siqnalı ilə kəsilə bilməsi üçün burada 640mks-ə uyğun zaman gecikməsi dövrü təkrarlanan NOP əmri istifadə edilməklə yaradılır. TMR0 qurulması və interruptə hazırlıq əməliyyatları tələb olunan qaydada əsas proqramda və interruptə xidmət alt proqramında yerinə yetirilir. LED-nin yanana qədər TMR0-nın sayması əsas proqramda təmin edilir. İnterruptə xidmət alt proqramında LED yandirilir və bu vəziyyəti yenidən qurulmuş TMR0 dolana qədər sxlanılır. Əsas proqramın və interruptə xidmət alt proqramın blok-sxemi şək. 4.25-də göstərilmişdir.

5PIC16F84 MK-nin RA4/TOCK1 xəttinə K1, RA1 xəttinə K2 düymələri,RB(0-7) portuna isə LED(0-7) bağlanmışdır.Hər dəfə K1 düyməsinə basdıqda LED(0-7)-nın vəziyyəti 00H-FFH kodlarına uyğun olaraq dəyişir.K2 düyməsinə basdıqda LED-lər sönür və proses yenidən təkrarar edilə bilər(şək.4.26). LED(0-7)-nin vəziyyətinin dəyişməsini xarici say siqnalları mənbəyi ilə işləyən TMR0 taymeri vasitəsilə idarə edək. External say siqnalları RA4/TOCK1 xəttinə bağlanmış K1 düyməsindən veriləcəkdir. Hər dəfə K1-ə basıldıqda TMR0-nın artan məzmunu RB(0-7) portuna çıxarılacaqdır.Dinamik olaraq TMR0-nın məzmununun RB(0-7)-a verilməsi üçün K2 düyməsinin vəziyyəti basılana qədər izləniməlidir.OPTİON registrinə yüklənən PS(0-2) kodu WDT taymerinə aid edilir.Çünki, External say siqnalları mənbəyi seçildiyi halda TMR0 üçün PSV lazım deyil. Proqramın işinə WDT-nin təsirini neytrallaşdırmaq məqsədilə TWDTmak=2.3 s almaq üçün PSV mak=128 ,yəni PS(0-2)=111 və PSA=1 olmalıdır.Proqramda PortA-nın giriş,PortB-nin çıxış kimi hazırlanması,TMR0 taymerinin qurulması və TMR0-nın məzmununun PorB-yə çıxarilması alqoritminin blok-sxemi şək.4.27-də göstərilmişdir.K1 və K2 düymələrinin dövrəyə bağlanmasına uyğun olaraq RA1 və RA4 girişlərində aktiv siqnal “1”-dən “0”-a keçid hesab edilir.

 


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