Studiu de laborator cronometre microcontroler de e-learning (LESO) SibSUTI

instrucțiuni metodice de lucru de laborator în LESO1 kit de formare.

1 Scop

  1. Pentru a studia caracteristicile cronometre microcontroler.
  2. Pentru a studia cronometrele de configurare metodologie.
  3. Învățarea pentru a genera un interval de timer.
  4. Exploreze modalități de programe de depanare pe un banc de laborator LESO1 de formare.

2 Înainte de a începe să lucreze

3 informații teoretice Scurt

3.1 Prezentare generală a cronometrele

Temporizatoare sunt folosite pentru a forma fantelor, permițând sistemului microprocesor să funcționeze în timp real. Cronometre sunt contoare digitale. care conta impulsuri de la un generator de frecvență extrem de stabil, sau o sursă de semnal extern, în acest caz, numit contra cronometru de evenimente externe. Pentru magistrala de sistem a cronometrele microprocesor sunt conectate prin porturi paralele.

De obicei, în sistemul cu microprocesor ca un generator de frecvență efectuează generator de sincronizare microcontroler intern. Generatorul de frecvență stabilește intervalul de timp minim, care poate determina cronometrul. Intervale de timp determinate de timer-ul poate avea un valori discrete bine definite. Bit contor digital temporizator definește intervalul de timp maxim care poate fi setat cronometrul.

Studiu de laborator cronometre microcontroler de e-learning (LESO) SibSUTI
Figura 1 - Schema bloc a timer-ul

Evident, numărul maxim care poate fi înregistrată în contra registru de 16 biți a cronometrului este egal cu 2 16 - 1 = 65535, care reprezintă o unitate logică să înregistreze fiecare descărcare. Deci, în cazul în care au fost înregistrate înainte de timer-ul care rulează în contra lui zero, overflow cronometrul va avea loc în 65.536 de cicluri de mașină. Cunoscând frecvența generatorului de ceas al sistemului microprocesor, și ca rezultat și generatorul de semnal perioada TG. puteți determina cu ușurință timpul depășirea timer-ului în secunde:

Dacă doriți să setați un interval de timp mai scurt, înainte de timer-ul care rulează în registrele sale pot scrie codul original, apoi proiectul de lege nu va începe de la zero, dar cu codul înregistrat, iar contorul va necesita mai puțin timp să se reverse. În acest caz, TT timp de timp este determinată prin formula:

în cazul în care: Cod - codul înregistrat în cronometrul pentru a porni, TT - timp timer, TG - perioada de oscilator de master, n - timer-ul de biți.

Dacă doriți să creați un interval de timp mai mare decât timpul maxim de depășire, timer-ul poate fi pornit de mai multe ori în ciclul. În acest caz, intervalul de timp este determinat ca:

unde N - numărul de iterații buclă, TT - cronometru durata calatoriei.

3.2 Timeri-contori microcontroler ADuC842

ADuC842 microcontroler are trei 16 biți contra-cronometru: timer 0 și 1 și temporizator temporizator 2. Structura și funcționarea Modurile de temporizatoare, contoare corespund principiilor generale ale arhitecturii MCS-51. Fiecare contor cronometru cuprinde două registre de 8 biți Thx și TLX (x = 0, 1 și 2).

Fiecare contor temporizator poate fi programat să funcționeze fie ca cronometre (sincronizare prin numărare impulsuri de ceas intern) sau numărul (conta pe un eveniment de intrare externă). În ambele cazuri, registrul de preaplin contra conduce la formarea unei cereri de întrerupere și stabilește un steag special de preaplin.

În modul temporizator TLX registru este incrementat cu unu fiecare ciclu mașină. Deoarece ciclul mașinii este alcătuit dintr-un nucleu de o perioadă de ceas-o singură măsură, rata maximă a numărului nucleului este egală cu frecvența de ceas.

In modul contra, un registru TLX crește valoarea de unul când nivelul tranziției de la mare la mic pe pinul extern respectiv al microcontrolerului: T0. T1 sau T2. Atunci când un singur ciclu de pini extern menține un înalt nivel logic, și în următorul ciclu - scăzut, apoi registrul timer este incrementat cu unu. Astfel, pentru a detecta o tranziție de la „1“ la „0“ este nevoie de două cicluri de oscilator intern al microcontrolerului, ceea ce înseamnă că rata maximă poate conta fi jumătate din frecvența ceasului intern.

Cronometru 0 și Timer 1 Mod service TMOD de control al registrului și registrul TCON.

Tabelul 1 - Descriere bit registru TMOD

5 Note privind pregătirea raportului

Raportul cuprinde:

  1. Scopul lucrării.
  2. Structurale ADuC842 microcontroler de circuit temporizator în modul selectat.
  3. Calculul valorilor inițiale ale registrelor de cronometrare.
  4. Justificarea alegerii valorilor registrului TMOD.
  5. diagrama grafică a programului.
  6. Codul sursă al programului.
  7. Conținutul listarea fișier al unui proiect software.
  8. Concluziile lucrării de laborator.

Schema, iar raportul în ansamblu, se efectuează în conformitate cu standardele ESKD.

în formula (Code = 2n - TT / TG ​​= 65536-62,036 = 3500/1) misprint noroi. În loc de divizare trebuie să fie multiplicate. Tocmai am înlocui valorile și nu au înțeles de ce timer-ul nu este considerat în mod corespunzător. Multiplicată (TT pe TG) si a lucrat ca stat.

Salutări. Formula decurge direct din formulele:

Transferăm la stânga a Codului, și TT pe partea dreaptă.

Se împarte totul pe TG:

Acest lucru se aplică la matematică. Acum, sensul fizic. Avem un contor de timp, este în fiecare ceas este incrementat cu unu. Când se dotikaet la o valoare de 2 n = 65536, el creează un eveniment care poate fi utilizat pentru a genera o întrerupere, sau pur și simplu citit la un TF sondaj de pavilion. Fiecare ciclu are un timp, care, în acest caz, este determinată de frecvența nucleului procesorului. Dacă nu configurați Adukov PLL, frecvența muncii sale este de 2.097152 MHz. Acest lucru înseamnă că, într-un fel ar fi de aproximativ egală cu 0,5 microsecunde. Acum uite, presupunem că avem nevoie pentru a încărca contorul de timp în 1 microsecundă (în practică, imposibil de mică valoare), cât de multe cicluri ar trebui să ruleze cronometrul? Privilny răspunde la 2. Acesta este, doi din lemn de tec Numără 1mks necesare. Ce număr trebuie să ne-am stabilit timer-ul pentru asta? Așa e, 65534. În acest caz, două cicluri se vor revărsa.

Lucrurile simplu, să spunem că vrem să măsoare 10mks. În barele (ne amintim că ciclul este microsecunde jumătate) va fi 20. Acest lucru înseamnă că avem un cronometru pentru a înregistra numărul 65536-20 = 65516. eveniment Acum overflow va fi de 20 de cicluri. Logica este clară?

Un alt exemplu este mai dificil. Este necesar să se măsoare 3.5ms. Pentru a calcula cât de mult va fi în baruri, împărțiți pe 3.5ms 0.5mks, în mod natural, trebuie să conducă la aceleași unități de măsură: 3500mks / 0.5mks = 7000 cicluri. Se pare că trebuie să punem numărul timer: 65536 - 7000 = 58536.

Acum analizează aceste trei exemple. seamănă Accidental cu formula?