Čítače / časovače uP 8051
Čo spracovávajú čítače
• 8051 má dva 16-bitové čítače T0, T1• Obsah čítačov prístupný cez 8-bit. registre
TH0, TL0 ( čítač T0 ) TH1, TL1 ( čítač T1 ) kde THx – Timer High ( horná slabika )
TLx – Timer Low ( dolná slabika )• registre TH0, TL0, TH1, TL1 sú v oblasti špeciálnych
funkčných registrov • čítače môžu počítať iba impulzy prichádzajúce zvonku cez
vstupy T0 ( P3.4 ), T1 ( P3.5 )• Časovače môžu počítať pravidelne prichádzajúce impulzy
na vstupy T0, T1 alebo počítať impulzy vnútorného generátora hodín, čím vytvárajú časové intervaly
Rozdiel medzi časovačom a čítačom
• Časovač slúži na počítanie pravidelne prichádzajúcich impulzov, s definovanou periódou
• Využitie pri tvorbe časových intervalov
• Čítač slúži na počítanie udalostí, ktoré sú reprezentované výskytom náhodne sa objavujúcich impulzov na vstupe čítača
T
časovač
T0
čítač
T0
pravidelne prichádzajúce impulzy
náhodne, nepravidelne prichádzajúce impulzy
Konfigurácia – nastavenie čítačov
• slúži na nastavenie režimu ( módu činnosti čítačov )
• každý čítač môže pracovať v jednom zo 4 režimov :
• Mod 0 – ako 13-bitový čítač• Mod 1 – ako 16-bitový čítač• Mod 2 - ako 8-bitový čítač s prednastavením• Mod 3 – nesymetrický mód
• Čítač pracuje vždy vzostupne, t.j. jeho obsah sa zvýši o jedna príchodom impulzu
Gate C / T M1 M0 Gate C / T M1 M0
Register TMOD ( Timer modus ) ( adresa 89h )
Mód M1 M0
0 0 0
1 0 1
2 1 0
3 1 1
Konfigurácia – nastavenie čítačov
• GATE – určuje riadenie činnosti čítača
ak GATE = 0 programove riadený bitmi TR0, TR1 v registri TCON
ak GATE = 1 hardverove riadený cez vstupy INT0, INT1
• C / T - určuje funkciu ako čítač ( C / T = 1 ), ako časovač ( C / T = 0 )
C – counter ( čítač ) T – Timer ( časovač )
Gate C / T M1 M0 Gate C / T M1 M0
Register TMOD ( Timer modus ) ( adresa 89h )
Čítač / časovač T1 Čítač / časovač T0
Ovládanie čítačov / časovačov
• TR0, TR1 – štartovací bit pre čítače ( 1 – štart, 0 – stop )
• TF0, TF1 – príznaky pretečenia čítača T0, T1 pri pretečení čítača sa nastaví príznak TF0, TF1 ( TF=1 )
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Register TCON (Timer Control ) ( adresa 88h )
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
Pretečenie čítača je okamih, kedy sa stav čítača mení zo samých jednotiek na samé nuly
Logika spínania čítačov
• Čítač bude počítať vstupné impulzy, ak výstup hradla AND = 1• spustenie programové Musí byť TRn = 1, Gate = 0
• spustenie hardverovéMusí byť TRn = 1, Gate = 1 spustenie signálom žiadosti o externé
prerušenie INTn pri prechode signálu z 0 – 1 ( nábežná hrana )
čítač
Mod 0, 1 časovača / čítača
MOD 0 – čítač pracuje ako 13-bitový• Pri pretečení sa nastaví príznakový bit TFn• Ak pracuje ako čítač, počíta impulzy na vstupe Tn• Ak pracuje ako časovač, počíta impulzy z vnútorného generátora
MOD 1 – čítač pracuje ako 16-bitový, ináč je to isté
Mod 2 časovača / čítača
• Čítač TLn pracuje ako 8-bitový s prednastavením hodnoty• Po pretečení je čítač TLn automaticky naplnený hodnotou uloženou
v čítači THn• Programové nastavovanie hodnoty v čítači THn neovplyvňuje
aktuálny stav čítača TLn
8 bit
Mod 3 časovača / čítača
• Nesymetrický mód činnosti, obidva čítače nemôžu byť v rovnakom móde• Čítač T0 je rozdelený na dva samostatné 8-bitové čítače TL0, TH0• Čítač TL0 môže pracovať ako čítač, aj ako časovač• Čítač TH0 môže pracovať iba ako časovač ( ovládaný cez bit TR1 )
• Čítač T1 vtedy môže iba generovať signál prenosovej rýchlosti pre sériový kanál mikropočítača