Menu

Daxil olun Qeydiyyat

Mikrokontroller Texnikasi

AVR-CLASSIC MK üçün proqramların qurulmasına aid nümunələr

AVR-CLASSIC MK üçün proqramların qurulmasına aid nümunələr

1) AT90S1200 modelində B portuna bağlanmış LED-lərin yanması/sönməsinin idarə edilməsi.

İşçi tezliyi 1MHs olan AT90S1200 MK-nin B(7) çıxışna qoşulmuş LED1-nin yanıb/sönməsi Tdelay =262ms intervalı ilə təkrar edilməli və D(5) girişindəki K düyməsinə basıldığı müddətdə B(0)-dəki LED2 yanmalıdır(şək.6.20 a). LED1-nin xarici siqnaldan asılı olmayaraq periodik yanıb/sönməsi MK-nin T0 taymerindən verilən dolma kəsilməsi TOV0 siqnalı ilə təmin edilə bilər .Bunun üçün T0-nın say girişinə bölmə əmsalı 1024 olmaqla TCLK=1mks periodlu CLK siqnalları verilir və TCNT0 sayğacının ilkin məzmunu n=0 olduğu nəzərdə tutulur. Bu halda T0-nın dolma müddəti Tdelay=(256-n)*PSV*TCLK = 256*1024*1mks≈262ms olur. Yəni Tdelay intervalı ilə hasil edilən periodic TOV0 siqnaları ilə işə buraxılan kəsilməyə xidmət proqramında LED1-nin vəziyyəti əksinə dəyişir və növbəti kəsilməyə qədər bu vəziyyət saxlanılır (şək.6.20b).

Kəsilməyə xidmət alqoritmində STATUS registrinin məzmunu yadda saxlanılmalı və yeni kəsilmə siqnallarının qəbuluna qadağa qoyulmalıdır.K açarının vəziyyətinin izlənilməsi və LED2-nin yandırılması əsas proqramın dövrləri olan hissəsində yerinə yetirilə bilər.Qeyd etmək lazımdır ki,AVR MK-nin giriş pinlərindəki siqnalın portun buferindəki xəttə qəbul ediməsi üçün buferin həmin xətti uyğun pinə qoşulması (“Pull up”) lazımdır.Bunun üçün əsas proqramın hazırlıq hissəsində port buferinuin bu biti “1” vəziyyətə gətirilir.Bundan əlavə əsas proqramın əvvəlində B və D portlarının istifadə edilən xətləri üzrə məlumatın ötürülməsi istiqaməti təyin edilməli və kəsilmə siqnallarının qəbuluna icazə verilməlidir.Əsas proqramın hər 262ms-dən bir kəsilmə siqnalları ilə kəsilməsi onun dövrləri daxilində baş verir. Əsas və kəsilməyə xidmət alqoritmlərinin blok-sxemi şək.6.21-də verilmişdir.AT90S1200 MK-nin əmrlərindən istifadə edərək proqramın qurulması isə şək.6.22–də göstərilmişdir.Burada AT90S1200 modelindəki SPR və GPR registrlərinin ünvanının tanıdılması .incude 1200 def.inc sətri vasitəsilə proqrama əlavə edilən include faylları ilə baş verir. RJMP Start və RJMP Tmrİnt əmrləri ilə üyğun olaraq əsas proqrama və kəsilməyə xidmət proqramına keçid baş verir.Bu əmrlər isə Reset və dolmadan kəsilmə vektorlarının ünvanları üzrə yerləşir.

2) AT90S1200 MK əsasında real zaman saatının qurulması.

MK-nin B portuna bağlanmış 4 mərtəbəli LCD ekranında dəqiqə və saatların əks etdirilməsi sxemi şək.6.23–də verilmişdir.B portundan verilən segment kodunun (“abcdefg.”) LCD-nin uyğun mərtəbəsinə qəbul edilməsi PD(0-3) çıxışlarındakı idarə edici siqnallarla olur.İdarə alqoritmi 4 hissədən ibarətdir :əsas,T0 kəsilməyə xidmət,saatın göstərilməsi və LCD-də əks etdirmə(şək.6.24). Hər bir saniyənin başa çatması və onun növbəti dəfə inkrement edilməsi T0 taymerinin Overflow siqnalı ilə başlanan T0 kəsilməyə xidmət proqramında yerinə yetirilir. Əsas proqrada isə 60 san./dəq. və 24 saatın başa çatması halları yoxlanılir, dəqiqə ,saat növbəti dəfə inkrement edilir və zamanın cari qiymətinin LCD-də əks etdirilməsi proqramına keçid baş verir. T0 taymerinin dolmadan kəsilmə siqnalınin Tdelay=5ms zaman intervallarından bir hasil edilməsi üçün T0 taymeri əsas proqramda aşağıdakı kimi qurulmuşdur:

FCLK=1MHs olduğunu fərz edərək PSV =256,n=176 seçilir və

Tdelay =(256-176)*256*1mks ≈5ms olur.

T0 kəsilməyə xidmət alqoritmində hər 5ms bir olmaqla msan üçün sayğac increment edilir. msan-nın məzmunu 200 olduqda 1 san. bitmiş olur(200x5ms=1000ms). Bu alqoritmə daxil olarkən kəsilməyə xidmət müddətində onun kəsilməməsi və Status registrinin məzmunun saxlanılması təmin edilir. Əvvəlki misalda olduğu kimi Portların istiqaməti əsas proqramda müəyyənləşdirilir.

LCD-ə simvollar çıxarılması üçün onların 8 bitli segment kodları B portuna verilməlidir.Simvollara uyğun segment kodlarının cədvəl şəklində MK-nin daxilindəki EEPROM yaddaşında saxlanıldığı nəzərdə tutulur.EEPROM-dan simvola uyğun kodun oxunması üçün həmin kodun yadda saxlanıldığı ünvan EEAR(EEPROM-nın ünvan registri)–nın məzmunu kimi xüsusi alqoritmlə (proqramda açıqlanmır) təyin edilə bilər.Dəqiqə və saat registrlərinin aşaği və yüksək tetradaları üçün uyğun EEAR məzmunu təyin edilməlidir.Təyin edilmiş hər bir EEAR qiyməti üçün seqment kodunun EEPROM-dan oxunaraq B portuna çıxarılması bilavasitə “LCD-də əks etdirmə” alqoritmində yerinə yetirilir. Şək.6.25–dəkı proqramda əsas və T0 kəsilməyə xidmət alqoritmləri bütövlükdə AT90S1200 MK-nin əmrlər sistemində qurulmuşdur. “Saatı göstər” və “LCD-də əks etdirmə” hissələrində isə EEAR-nin təyin edilməsi və EEPROM-dan oxu əməliyyatları açıqlanmamışdır.


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