cronometre Aparatură microcontroler mcs-51

Modelele de bază ale familiei are două 16-bit timer / contoare programabile (T / C0 și T / C1), care pot fi utilizate fie ca temporizatoare și contoare ca evenimente externe. Fiecare dintre ele este format din două 8 biți înregistrează TH0 (high byte) și TL0 (octetul inferior) 0 sau temporizator TH1 (high byte) și TL1 (octet scăzut) pentru temporizator 1.

În valoarea temporizatorului modul timer / counter este incrementată în fiecare ciclu de instruire, adică fiecare 12 perioade de rezonator de cuarț.

In modul contra, conținutul timer / contorul este incrementat la o tranziție de la 1 la 0, semnalul de intrare extern furnizat la T0 ieșire sau microcontroler T1. Deoarece perioada de detectare necesară pentru două cicluri, frecvența maximă a semnalului de numărare este egal cu 1/24 din frecvența de intrare a rezonatorului. Pe durata perioadei a semnalelor de intrare au limite superioare. Pentru a se asigura că citirea trebuie să dețină valoarea semnalului de intrare este de 1, cel puțin într-un ciclu mașină de micro-calculator.

De asemenea, Timer 1 poate fi utilizat pentru a seta viteza de transmisie (rata baud) portul serial.

Pentru a comuta modurile de cronometre utilizate biți M0 și M1 TMOD registru funcție specială. Numele este derivat din contracția a două cuvinte englezești: T (temporizator) - cronometru și modul - modul. Denumirile biți și aranjamentul prezentate în figura 1:

Figura 1. Operația de registru de control a modului în format cronometre TMOD.

Deoarece cronometrele de control 0 și 1 sunt complet identice, atunci vom da biți numire după nume:

Numele și scopul

TMOD.7 timer 1 și cronometrul 0 TMOD.3

de control timer de blocare picioare INTx. Dacă bitul este setat la 1, timer / counter „x“ este permisă atâta timp cât orificiul de intrare „lNTx“ nivel ridicat și bitul de control „TRx“ este setat. Dacă bitul este eliminat la 0, apoi T / C este permisă imediat ce bitul de control „TRx“ este setat la 1.

TMOD.6 timer 1 și cronometrul 0 TMOD.2

Selectați temporizator biți sau modul de eveniment contor. Dacă bitul este șters la 0, timer-ul funcționează pe oscilator intern, dacă este setat la 1, apoi funcționează pe semnale externe de intrare „Tx“

TMOD.5 timer 1 și cronometrul 0 TMOD.1

Selectarea modului temporizator

TMOD.4 pentru T / C1 și TMOD.0 pentru T / C0

În funcțiile modului de zero-timer ca însumare contra 13-biți. Acest contor este compus din registru THX 8 biți și mai mici de 5 biți de TLX registru în cazul în care registru x desemnarea este înlocuit de un 0 sau 1, în funcție de faptul dacă timer-ul, pe care le gestiona. Senior 3 biți registre TLX nu este definit și sunt ignorate. Instalarea pornește un temporizator sau TR0 TR1 de pavilion nu șterge registrele. Circuitul timer sau timerul 0 1 funcționează în modul 0, prezentat în figura 2.


Figura 2. cronometre schematică 0 sau 1 în modul 0

În această schemă, un cronometru care nu este prezentat circuitul de comandă. Vom discuta despre caracteristicile cronometre de control 0 și 1, și un circuit de control ulterior.

0 modul a fost introdus pentru compatibilitate cu moștenirea MCS-48 familie de microcontrolere pentru a facilita transferul de programe deja dezvoltate la noile procesoare și, prin urmare, nu este în prezent în uz. Cu toate acestea, acest mod poate asigura intervalul formării pentru 8096 durata ms la o frecvență de 12 MHz oscilator.

Când conținutul contor este schimbat din starea tuturor „1“ de stat în toate „0“. este stabilit (ia valoarea „1“) întrerupe TF0 pavilion sau temporizator TF1.

Utilizatorii nu sunt, de obicei interesați de cantitatea maximă de timp, și intervalul de timp. Pentru a reduce intervalul de timp în registrele de temporizare poate fi pre-introduceți un număr și generează astfel un interval de timp arbitrar. Luați în considerare exemplul timekeeper T0 pentru generarea unui interval de timp de 5 ms.

În acest exemplu, pentru scindarea 16-bit constant în doi octeți separate, au fost folosite separarea funcției în vârstă și octet mai tineri. Aceste caracteristici sunt prezente în majoritatea liniilor de asamblare pentru MCS-51 microcontroler. În cazul în care limbajul de programare nu conține în compoziția funcțiilor sale similare, este posibil să se selecteze o operațiune pentru a profita de octeți împărțit la 256.

În primul mod de operare, timer-ul funcționează ca un contor Hexazecimal. Modul 1 este similar cu modul 0, cu excepția faptului că registrele timer folosesc toate cele 16 de biți. În acest mod, registre și THX TLX incluse, de asemenea, unul pe celălalt. Timer 0 și cronometrul 1 Modul 1 corespunde diagramei:

Figura 3. Cronometrul 0 sau 1 în modul 1.

În acest mod, este posibil să se asigure formarea duratei intervalului de timp 65536 microsecunde la o frecvență de 12 MHz oscilator.

Luați în considerare exemplul timer-ul T0 pentru generarea unui timp 15ms interval.

În acest exemplu, overflow timer apar după 15000 cicluri CPU, adică după 15 ms. Programul va verifica în mod constant starea de pavilion preaplin cronometru, și de îndată ce se stabilește în unitatea va trece la următoarea comandă.

Zero și modurile de prima T0 și T1 cronometre sunt concepute pentru a forma un singur interval de timp. În cazul în care devine necesară pentru a genera o secvență de intervale de timp pentru procesele de loturi, TH0 de încărcare și TL0 înregistrează pentru a specifica ora dorită intervalul se realizează în software-ul, care, pentru intervale de timp scurte, poate avea ca rezultat costuri semnificative de timp CPU.

Pentru a genera aceeași secvență de intervale temporale utilizate de operațiunea temporizator pentru a reporni - modul 2.

Registrul Modul 2 timer TLX funcționează ca un contor de 8 biți cu reîncărcare automată valoarea inițială a registrului de a înregistra THX TLX. Overflow înregistrare TLX TFX nu numai stabilește un steag, dar, de asemenea, încarcă conținutul registrului TLX registru THX care a fost inițializat anterior de software-ul. Reîncărcării nu schimbă conținutul THX registru. Temporizatorul 0 și cronometrul 1 în modul 2 corespunde schemei:

Figura 4. Schema cronometre 0 sau 1 în modul 2.

Timer 1 atunci când funcționează în modul 3 pur și simplu are valoarea sa. Efectul este același ca atunci când resetarea bitului TR1.

0 timer în modul 3 reprezintă două contor de 8 biți separat (registrele TL0 și TN0), registrul TL0 utilizează Croncomenzii biții 0: C / T0. GATE0, TR0 și TF0. registru TN0 funcționează numai în modul cronometru și utilizează biții TR1 și TF1 temporizator 1. Prin urmare, TN0 registru controlează cronometrul cronometrul de întrerupere 1. Modul logic 0 este prezentată în Schema 3:

Figura 5. Schema taymera 0 în modul 3.

funcționare temporizator TL0 este permisă dacă bitul TR0 = 1, un temporizator TH0 - dacă bitul TR1 = 1. Timer 1 Cronometru 0 atunci când funcționează în modul 3 este activat în mod constant pe.

Acest mod permite două temporizator independent, în cazul în care cronometrul 1 este utilizat pentru portul serial, dar trebuie spus că, în practică, modul 2 este de un interes scăzut.

Timerele circuitelor de comandă 0 și 1 sunt identice și temporizatorul T0 este prezentată în Figura 6. T1 a circuitului de control al timer se va schimba doar camerele de biți de control (zerourile sunt înlocuite cu 1). În diagrama de dreptunghi umbrită marcat de picioare exterioare cip microcontroler.

Figura 6. Schema cronometre de control 0 sau 1.

Schema arată că timer-ul poate fi pornit și oprit de biți TRx. Astfel, este posibil să se reducă consumul de chip și nivelul de interferență generate de acesta. Având în vedere că contorul de temporizare sunt comutate la o frecvență ridicată, acestea pot consuma până la jumătate din consumul de curent al microcontrolerului. Trebuie remarcat faptul că, atunci când pornirea și după resetarea timer-ul microcontrolerului este interzisă.

Este posibil să se controleze funcționarea timer-ul din exterior cu ajutorul picioarelor exterioare T0 pentru T0 sau T1 temporizator pentru temporizator T1. Pentru a face acest lucru, în scris biți unitate logică GATEX (fără a uita pentru a permite funcționarea cronometrului folosind biți TRX).

Mai mult decât atât, cronometrul poate fi sincronizat cu un oscilator extern. Pentru a face acest lucru, bit C / T de management trebuie să fie scrise unu logic.

Biții de incluziune TR0 și TR1 sunt plasate în registrul temporizatoare TCON (control - control), și biții GATE și C / T în registrul TMOD. înregistra TCON formatul redus în figura de mai jos:

Figura 7. Format modul de operare al cronometre registru TCON.

bit de control de tip întrerupere 0 este setat / eliminate de software-ul pentru a determina tipul de cerere de întrerupere INT0 (cut / scăzut)

În plus, cronometrele de circuit de control interesant prin faptul că permite utilizarea cronometre ca instrumente de măsurare. Luați în considerare această posibilitate în detaliu.

Utilizarea cronometrului ca o măsură a lățimii impulsului

Este cunoscut faptul că măsurarea duratei impulsului se poate face prin numărarea impulsurilor de frecvența de referință. Principiul de măsurare durata impulsului este ilustrat în Figura 8.

Pentru a măsura durata impulsului semnalului măsurat este alimentat la ieșirea de microcontroler și în biți de control INTx POARTA este scris o logică de un semnal de activare. Timer / Contorul este setat în modul de înregistrare timer-ul este în biți C / Tx zero logic. Conținutul timer-ul este resetat.

program de măsurare a lățimii impulsului EXEMPLU este prezentată în Figura 9.

Figura 8. Principiul de măsurare a duratei impulsului

Figura Durata impulsului 9. Programul de măsurare

Dacă acum, în impulsul de intrare microcontroler INT0 alimentat cu o durată necunoscută, registrele TH0 și TL0 vor fi scrise durata acesteia în microsecunde.

Utilizarea cronometrului ca un contor de frecvență.

Este cunoscut faptul că frecvența de măsurare se poate face prin numărarea numărului perioadelor de frecvență necunoscută pe unitatea de timp. Principiul de măsurare a frecvenței este ilustrată în figura 10.

Figura 10. Frecvența de măsurare Principiu

semnalul măsurat este alimentat la ieșire Tx microcontroler pentru măsurarea frecvenței. Timer / Contorul este configurat în regimul de intrare contor în unitatea logică / Tx bit C. Conținutul timer-ul este resetat. Temporizatorul pornește pentru un interval de timp strict definit. Acest interval este setat ceasul rămase.

Programul măsurarea frecvenței semnalului EXEMPLU pe un picior T0 microcontroler este prezentat în figura 11.

Figura 11. Frecvența Programului de Măsurare

Dacă acum la T0 intrare microcontroler pentru a semnalului cu o frecvență necunoscută, registrele TH0 și TL0 vor fi scrise frecvența sa în kilohertzilor.

Împreună cu articolul „microcontrolere Arhitectura MCS-51“ pentru a citi: