Použití časovače – výpočet časové prodlevy

Princip výpočtu prodlevy

obrazek

Obr. 1: Logické zapojení funkce čítače/časovače 8051

 

Řízení č/č sepne v případě logické jedničky na výstupu hradla AND. Na výstupu tohoto hradla může být logická jednička (nepracujeme–li s přerušením) jen tehdy, když signál TR bude nastaven na logickou jedničku a zároveň signál GATE bude nastaven na logickou 0.

Pokud řízení sepne, začínají se plnit registry časovačů (dle nastaveného módu). V okamžiku naplnění registrů se nastaví příznak (bit) TF na jedničku.

Příklad: Pro 8-bitový mód trvá naplnění 28 = 256 μs. Pro 16-bitový mód trvá naplnění 65536 μs. Příklad je proveden pro krystal 12MHz.

Realizace podprogramu 1 s pomocí časovače:

1. Zvolíme si mód (v podstatě lze zvolit jakýkoliv) podle délky prodlevy a vypočítáme si počet naplnění registrů.

Pro dlouhé prodlevy volíme 16-bitový mód (65536 μs). Výpočet pak vypadá takto :

1. 65536 μs = 15,2 = 15  (počet naplnění - zatím zaokrouhlíme)

2. Nastavíme mód v registru TMOD, vynulujeme registry časovačů.

3. Spustíme časovač TR0 = 1.

4. Nastavíme počet naplnění do registru.

5. Vynulujeme bit naplnění TF0 (sám se nenuluje a nastaví se na 1, když je registr naplněný).

6. Testujeme bit naplnění TF0, dokud není 1, registr se stále plní, stále testujeme. Až je bit 1, odečtu jedničku z počtu naplnění.

7. Pokud se jedná o podprogram, ukončíme jej instrukcí RET.

8. Mám hotový podprogram 1 s.

  S1 : MOV TMOD,#00000001B           ; nastaveni 1.modu č. 0 -16-bit registr

           SETB TR0                                   ; spuštení č. 0

    START: MOV R0,#15                               ; počet naplnění registru č. 0

           HOP: CLR TF0                                     ; nulovaní bitu naplnění

    SEM: JNB TF0,SEM                             ; testování bitu naplnění č. 0

           DJNZ R0,HOP                             ; cyklus 15 naplnění registru = 1s

           RET

Zdroje
  • VESELÁ, Zuzana. Mikroprocesorová technika. Interní skriptum, VOŠ a SPŠE Olomouc. 2013

Obrázky​:

  • Obr. 1: Archiv autora
Doplňující učivo

Nezapomeň, že podprogram sám o sobě trvá přibližně 13 μs. Pro přesnost tuto hodnotu přičteš do dolního registru časovače TL0.