|

Liczniki Mikrokomputer 8051 zawiera w sobie 2 szesnastobitowe liczniki do pomiaru interwałów czasowych, szerokości impulsu, zliczania zdarzeń, generowania cyklicznych przerwań itp. Każdy z nich może być programowany niezależnie i pracować w kilku tubach. W trybie 0 wykorzystuje się trzynastobitowy licznik. Trzy najbardziej znaczące bity TL0 lub TL1 są ignorowane, TH0 i TH1 tworzą liczniki ośmiobitowe. Tak więc w trybie 0 układ pracuje z preskalerem dzielącym zliczane impulsy przez 32. Tryb 1 to szesnastobitowy układ odmierzania czasu lub licznik impulsów, natomiast w trybie 2 układ zachowuje się jak ośmiobitowy timer/licznik z automatycznym przeładowaniem po wystąpieniu przepełnienia. Dodatkowo licznik 0 może (w trybie 3) pełnić funkcję ośmiobitowego timera/licznika i ośmiobitowego timera zliczającego interwały czasu. Jeśli licznik 0 pracuje w trybie 3, licznik 1 może być zaprogramowany w jeden z trzech wymienionych wyżej trybów, chociaż nie może wtedy ustawiać flagi żądania przerwania lub generować przerwań. Tryb ten może być jednak użyteczny ponieważ przepełnienie licznika 1 może być wykorzystane do generowania impulsu zegarowego dla portu szeregowego. Taka liczba trybów pracy i szesnastobitowa precyzja czyni układ timerów/liczników wbudowanych w 8051 bardzo przydatnymi. Mogą być wykorzystywane do pracy z wysokimi częstotliwościami. Zakres pracy może zawierać się od 0.1 do 1MHz (dla kwarcu 1.2:12MHz), kiedy zlicza się impulsy wewnętrznego oscylatora, które są dzielone przez 12, i od 0 do 500kHz dla tego samego kwarcu, kiedy zliczane są impulsy zewnętrzne. Obydwa zewnętrzne i wewnętrzne wejścia mogą być bramkowane przez inne zewnętrzne źródło dla pomiaru szerokości impulsu. Liczniki są startowane i stopowane przez program. Każdy licznik ustawia flagę żądania przerwania w momencie wystąpienia przepełnienia tzn. w chwili przejścia ze stanu 11...11 do stanu 00...00.
|