Sok a mikrokontroller alkalmazások megkövetelik a külső események számlálását, például a pulzusvonatok gyakoriságát és a számítógépes műveletek közötti pontos belső késleltetések előállítását. Mindkét feladat megvalósítható szoftveres technikákkal, de a számláláshoz és az időzítéshez tartozó szoftverhurkok nem adják meg a pontos eredményt, sokkal fontosabb funkciók nem kerülnek végrehajtásra. E problémák elkerülése érdekében a mikrokontrollerek időzítői és számlálói jobb lehetőségeket kínálnak az egyszerű és olcsó alkalmazásokhoz. Ezeket az időzítőket és számlálókat a megszakítja a 8051 mikrovezérlőt .
Két 16 bites időzítő és számláló van 8051 mikrovezérlő : időzítő 0 és időzítő 1. Mindkét időzítő 16 bites regiszterből áll, amelyben az alacsonyabb bájtot TL-ben, a magasabb bájtot TH-ben tárolja. Az időzítő használható számlálóként, valamint időzítési műveletekhez, amelyek a számlálók impulzusainak forrásától függenek.
Időzítők és számlálók
A számlálók és időzítők a 8051 mikrovezérlőben két speciális funkció regisztert tartalmaznak: TMOD (Timer Mode Register) és TCON (Timer Control Register), amelyek aktiválásra és konfigurálásra szolgálnak időzítők és számlálók .
Időzítő üzemmód vezérlés (TMOD): A TMOD egy 8 bites regiszter, amelyet az időzítő vagy számláló és az időzítők módjának kiválasztására használnak. Az alsó 4 bitet a 0 vagy a számláló0 időzítő vezérléséhez, a fennmaradó 4 bitet pedig az 1. időzítő vagy az 1. számláló vezérléséhez használjuk. Ez a regiszter az SFR regiszterben van, az SFR regiszter címe 89..
Időzítő üzemmód vezérlés (TMOD)
Kapu: Ha a kapu bit értéke „0”, akkor ugyanúgy elindíthatjuk és leállíthatjuk a „szoftver” időzítőt. Ha a kapu értéke „1”, akkor hardveres időzítőt tudunk végrehajtani.
C / T: Ha a C / T bit ’1’, akkor számláló módként működik, és hasonlóan a C + beállításakor
= / T bit „0”, időzítő módként működik.
Módválasztó bitek: Az M1 és M0 üzemmódválasztó bitek, amelyek az időzítő műveletek kiválasztására szolgálnak. Négy mód van az időzítők működtetésére.
0 mód: Ez egy 13 bites mód, ami azt jelenti, hogy az időzítő művelete befejeződik a „8192” impulzusokkal.
1. mód: Ez 16 bites üzemmód, ami azt jelenti, hogy az időzítő művelete a maximális „65535” óraimpulzusokkal fejeződik be.
2. mód: Ez az üzemmód egy 8 bites automatikus újratöltési mód, ami azt jelenti, hogy az időzítő művelete csak „256” óraimpulzusokkal fejeződik be.
3. mód: Ez az üzemmód split-timer mód, ami azt jelenti, hogy a T0 értékei betöltődnek, és automatikusan elindítja a T1-et.
Módválasztó bitek
Módválasztás Az időzítők és számláló értékei a 8051-ben
Az időzítők és számlálók módválasztási értékei
Időzítővezérlő regisztráció (TCON): A TCON egy másik regiszter, amelyet a számlálók és az időzítők működésének vezérlésére használnak a mikrovezérlőkben. Ez egy 8 bites regiszter, ahol négy felső bit felelős az időzítőkért, az számlálók, az alsó bitek pedig a megszakításokért.
Időzítő vezérlő regisztráció (TCON)
TF1: A TF1 jelentése „timer1” zászló bit. Az időzítő1 időzítésének kiszámításakor a TH1 és a TL1 eléri a maximális értéket, amely automatikusan „FFFF”.
EX: míg (TF1 == 1)
Ha a TF1 = 1, akkor törölje a jelzőbitet és állítsa le az időzítőt.
TR1: A TR1 az timer1 start vagy stop bitet jelenti. Ez az időzítő elindítása történhet szoftveres utasításokkal vagy hardveres módszerrel.
EX: kapu = 0 (1. időzítő szoftveres utasításon keresztül)
TR1 = 1 (Indítási időzítő)
TF0: A TF0 jelentése „timer0” zászlóbit. Az időzítő1 késleltetésének kiszámításakor a TH0 és a TL0 automatikusan eléri a „FFFF” maximális értéket.
EX: míg (TF0 == 1)
Ha a TF0 = 1, akkor törölje a jelzőbitet és állítsa le az időzítőt.
TR0: A TR0 jelentése „timer0” start vagy stop bit, ez az időzítő elindítása történhet szoftveres utasításokkal vagy hardveres módszerrel.
EX: kapu = 0 (1. időzítő szoftveres utasításon keresztül)
TR0 = 1 (Indítási időzítő)
Időkésleltetési számítások a 8051 mikrovezérlőhöz
A 8051 mikrovezérlő 11,0592 MHz frekvenciával működik.
11,0592 MHz frekvencia = 12 pule
1 óra impulzus = 11,0592MHz / 12
F = 0,921 MHz
Időkésés = 1 / F
T = 1 / 0,92MHz
T = 1,080506 us („1” ciklus esetén)
1000us = 1MS
1000 ms = 1 másodperc
Eljárás a késleltetési program kiszámításához
1. Először a „Timer0” és „Timer1” TMOD regisztráció értékét kell betölteni különböző módokban. Például, ha az 1. időzítőt az 1. módban akarjuk működtetni, akkor azt „TMOD = 0x10” -ként kell konfigurálni.
2. Amikor az időzítőt az 1. módban működtetjük, az időzítő a 65535 maximális impulzusokat veszi fel. Ezután a kiszámított késleltetési impulzusokat ki kell vonni a maximális impulzusokból, és ezt követően hexadecimális értékre kell átalakítani. Ezt az értéket időzítő1 magasabb bitekkel és alacsonyabb bitekkel kell betölteni. Ezt az időzítő műveletet a beágyazott C mikrovezérlőbe .
Példa: 500us késleltetés
500us / 1,080806us
461impulzusok
P = 65535-461
P = 65074
65074 hexa decimális betűvel = FE32
TH1 = 0xFE
TL1 = 0x32
3. Indítsa el az időzítőt1 “TR1 = 1”
4. Figyelje a „while (TF1 == 1)” jelzőbitet
5. Törölje a „TF1 = 0” jelzőbitet
6. Csukja be az „TR1 = 0” időzítőt
Példa programok:
Program- 1
Program- 2
Program- 3
Számlálók 8051-ben
Használhatunk számlálót a C / T bit magasan tartásával, azaz az '1' logikával a TMOD regiszterben. A jobb megértés érdekében adtunk egy programot, amely számlálóként az 1. időzítőt használja. Itt a LED-ek a 8051 2. porthoz vannak kapcsolva, és a kapcsoló az időzítő1 P3.5 tűjéhez, és ezért, ha a kapcsolót megnyomják, az érték meg lesz számlálva. Ellenkező esetben egy külsőleg csatlakoztatott érzékelő ehhez a számláló csaphoz bemenetként végzi ezt a számlálási műveletet.
Counter Program
Időzítők és számlálók alkalmazása 8051-ben
Digitális számláló 8051-gyel
A 8051-es digitális számlálót úgy érjük el, hogy a mikrovezérlőt a fentiekben leírtak szerint programozzuk, és egy érzékelő rendszert csatlakoztatunk hozzá. Ez az objektumszámláló infravörös érzékelőt használ, amely érzékeli a közelében lévő akadályt, és lehetővé teszi a a mikrokontroller csapja 06. Amikor egy tárgy áthalad az érzékelőkön, akkor a mikrovezérlő megszakítási jelet kap az IR érzékelőktől, és növeli a számlálást, amely a 7 szegmenses kijelzőn jelenik meg.
Digitális számláló 8051-gyel
Időkésleltetési áramkör 8051 mikrovezérlő használatával
Az alábbi ábra azt mutatja be, hogy az időzítő működése hogyan valósítható meg a LED-ek hatékony kapcsolásához. A LED-ek késleltetési műveletét egy mikrovezérlőben programozzák a fentiekben ismertetett módon. Itt a LED-ek egy sora csatlakozik a 2-es porthoz egy közös tápellátó rendszerrel. Amikor ezt az áramkört bekapcsolja az idő késleltetése alapján programot a mikrovezérlőben megfelelően ezek a LED-ek bekapcsolnak.
Időkésleltetési áramkör
Mindez a 8051 mikrokontroller időzítőjéről és számlálóiról szól, alapvető programozási és alkalmazási áramkörökkel. Reméljük, hogy a cikkben szereplő információk elegendő adatot adhattak a koncepció jobb megértéséhez. Továbbá, ha bármilyen kétség merülne fel a 8051 és áramköreinek programozásával kapcsolatban, az alábbi megjegyzésekkel léphet velünk kapcsolatba.
Fotók: