Mikrokontroler 8051

background image

Wbudowane układy timerów

Bartłomiejczyk Jarosław 131605

background image

Układy licznikowe T1,T0

Mikrokontrolery rodziny 51 są zwykle wyposażone w co najmniej dwa

układy licznikowe- liczniki T0 i T1. Każdy z tych liczników składa

się z 8-bitowych połówek. Połówki te widziane są przez CPU jako

rejestry TH0 (bardziej znacząca część) TL0 (mniej znacząca część)
w przypadku T0 oraz odpowiednio TH1 i TL1 w przypadku licznika

T1. Każdy z obu liczników może pracować jako licznik (zliczanie

impulsów zewnętrznych) lub jako czasomierz (zliczanie cykli
maszynowych mikrokontrolera). Przy pracy w trybie czasomierza

inkrementacja licznika następuje w każdym kolejnym cyklu

maszynowym, a zatem maksymalna częstotliwość zliczania jest

równa 1/12 częstotliwości zegarowej mikrokontrolera. Niezależnie

od rodzaju funkcji (czasomierz/licznik), każdy z układów

licznikowych może działać w jednym z czterech trybów pracy:

background image

Tryb 0 (1)

Tryby pracy liczników T0 i T1,źródło sygnałów

wejściowych oraz sposób sterowania licznikiem ustala
się przez wpisanie do rejestru TMOD odpowiedniego
słowa. Rejestr TMOD znajduje się w obszarze SFR pod
adresem niepodzielnym przez 8 i dlatego zmianę
stanu jego znaczników należy dokonywać poprzez
wpis całego bajtu.

background image

Obydwa liczniki mają takie same układy współpracujące.

Rys.1. Schemat układów liczników T0 i T1 pracujących w trybie 0 i 1

background image

Przełącznik doprowadzający sygnał do wejściowy do

liczników albo z wewnętrznego oscylatora poprzez
dzielnik :12, albo z zewnątrz mikrokontrolera poprzez
końcówki T0 i T1 portu P3. Przełącznik jest przełączany
znacznikiem C/T. Gdy C/T=0, to taktowanie liczników
odbywa się z układu wewnętrznego, a gdy C/T=1, to są
zliczane impulsy zewnętrzne.

background image

Zespół bramek blokujących pracę liczników. Znacznik TRi

służy do programowego uruchamiania pracy licznika.

TRi= 0 licznik jest zatrzymany

TRi= 1 licznik pracuje
Praca licznika może być rónież uruchamiana sygnałem

zewnętrznym . Przy ustawieniu znacznika GATE=1
licznik pracuje gdy wejście INTi jest na wysokim
poziomie, jest natomiast zatrzymany, gdy wejście to jest
na poziomie niskim. Gdy znacznik GATE=0 praca
licznika nie zależy od stanu wejścia INTi.

background image

Przerzutniki przepełnienia liczników TFi, umieszczone w

rejestrze TCON. Przepełnienie licznika Ti ( przejście ze
stanu 1 do 0 na wszystkich bitach licznika) powoduje
wpisanie stanu 1 do przerzutnika TFi. Jeżeli przerwanie
od licznika jest aktywne, to nastąpi wywołanie procedury
obsługi tego przerwania.

Wejścia bramkujące liczników są wspólne z wejściami

przerwań zewnętrznych dzięki czemu zewnętrzny sygnał
zamykający bramkę licznika może uruchomić system
przerwań.

background image

Tryby pracy liczników wybiera się poprzez odpowiednie

ustawienie znaczników M0 i M1:

-Tryb 0

M1=0, M0=0

Tryb 0 został wprowadzony dla zachowania
kompatybilności z rodziną mikrokontrolerów MCS-48,
pierwowzorem rodziny ‘51. W trybie tym rejestr TL
pracuje w układzie dzielnika wstępnego o podziale przez
2

5

lub 5-bitowego licznika, a rejestr TH jako licznik lub

dzielnik 8-bitowy. Oba rejestry są połączone kaskadowo
(rys.1).

background image

-

Tryb 1

M1=0, M0=1

Jest taki sam jak tryb 0 z tą różnicą że rejestr TL pracuje
jako licznik lub dzielnik 8-bitowy. Obydwa rejestry są
połączone kaskadowo tworząc 16-bitowy dzielnik lub
licznik (rys.1).

-

Tryb 2

M1=1, M0=0

W trybie 2 rejestry są połączone w konfiguracji dzielnika
8-bitowego z autoładowaniem, tzn. z zadawaniem stanu
początkowego po przepełnieniu rejestru(rys.2) .

background image

Rys.2. Układ połączeń liczników T0 i T1 pracujących w trybie 2

background image

Rejestr TL pracuje jako dzielnik właściwy, natomiast rejestr

TH służy jako bufor, którego zawartość przepisywana jest
do rejestru TL gdy nastąpi jego przepełnienie. Operacja ta
umożliwia otrzymanie dzielnika o zmiennym podziale,
przy czym należy pamiętać, że liczniki liczą w przód i
dlatego do bufora trzeba wpisywać uzupełnienie do 0FFh
liczby podziałowej. Licznik T1 pracujący w trybie 2 jest
często stosowany do taktowania portu szeregowego
mikrokontrolera.

background image

-

Tryb 3

M1=1, M0=1

Tryb 3 występuje tylko dla licznika T0. W trybie tym rejestry

TL0 i TH0 pracują jako dwa niezależnie 8-bitowe
liczniki/dzielniki (rys.3.). Rejestr TL0 pracuje w strukturze
licznika T0 (znaczniki TR0,GATE, C/T oraz przerzutnik TF0).

Może więc być sterowany i testowany jak licznik T0 w trybie 0

i 1. Natomiast rejestr TH0 jest połączony na stałe z wyjściem

zegara wewnętrznego poprzez dzielnik :12 i jest bramkowany
znacznikiem TR1.
Wyjście tego rejestru jest połączone z przerzutnikiem TF1.

Dlatego gdy licznik T0 pracuje w trybie 3, to licznik T1 może

pracować w pozostałych trybach ale bez możliwości

bramkowania jego wejścia i testowania przepełnienia. W tej

sytuacji licznik T1 nadaje się tylko do taktowania portu
szeregowego. Wprowadzenie trybu 3 dla licznika T1 powoduje
jego zatrzymanie.

background image

Rys.3. Układ połączeń licznika T0 pracującego w trybie 3

background image

Przy zliczaniu impulsów wewnętrznych (C/T=0) rejestr jest

inkrementowany co jeden cykl maszynowy. Odpowiada to
1/12 częstotliwości oscylatora. Natomiast przy zliczaniu
impulsów zewnętrznych (C/T=1) stan odpowiedniego
wejścia licznika jest taktowany podczas każdego cyklu
maszynowego (rys.4).

background image

Rys.4. Testowanie poziomów sygnałów wejściowych liczników

background image

Jeżeli test wykaże stan wysoki wejścia w jednym cyklu

maszynowym oraz stan niski w następnym cyklu
maszynowym, to w kolejnym cyklu maszynowym nastąpi
inkrementacja licznika. Dlatego maksymalna
częstotliwość impulsów zewnętrznych zliczanych przez
liczniki T0 i T1 musi być mniejsza od 1/24 częstotliwości
oscylatora. Natomiast częstotliwość minimalna nie jest
niczym ograniczona.

background image

Timer T2

W mikrokontrolerze 80C52 występuje dodatkowy licznik
nazywany T2. Podobnie jak licznik T0 i T1 jest on 16−bitowy.
Posiada jednak kilka dodatkowych funkcji, które rozszerzają
jego możliwości.
Podobnie jak w licznikach opisanych wcześniej licznik T2
składa się z dwóch bajtów TH2 (starszy) i TL2 (młodszy).
Podobnie jak T0 i T1 licznik T2 może pełnić rolę czasomierza,
czyli zliczać impulsy wewnętrzne pochodzące z zegara
procesora, może także zliczać impulsy zewnętrzne dzięki
alternatywnej funkcji jednego z pinów portu P1 a mianowicie
P1.0 – nóżka 1 procesora 8052.

background image

Z licznikiem T2 w kostce 80C52 związany jest dodatkowy także
alternatywnie wykorzystywany pin portu P1 (zwany T2EX) a
mianowicie P1.1 – nóżka 2. Otóż jeżeli zachodzi potrzeba,
programista może wykorzystać tę końcówkę do zewnętrznego
bramkowania licznika T2, co bardzo często przydaje się
podobnie jak przy bramkowaniu liczników T0 i T1 sygnałami
INT0 i INT1.
I tak w przypadku gdy T2 pracuje jako licznik liczący zewnętrzne
impulsy, opadające zbocze na końcówce T2EX spowoduje
automatyczne natychmiastowe załadowanie licznika T2 – TH2 i
TL2 wartością zdefiniowaną w rejestrach RLDH.RLDL.

background image
background image

Jeżeli zaś licznik T2 pracuje w roli czasomierza, to wejście T2EX można
wykorzystać do automatycznego przepisania aktualnej wartości
rejestrów TH2.TL2 do rejestrów RLDH.RLDL. Można powiedzieć że
działanie w tym trybie (czasomierza) jest jakby odwrotne do sposobu w
trybie licznika. Wartość zostaje przepisana do rejestrów RLDH.RLDL a
nie odwrotnie jak to miało miejsce w przypadku pracy T2 w trybie
licznika impulsów zewnętrznych. W praktyce takie działanie umożliwia
np. bardzo dokładny pomiar przebiegów wolnozmiennych bez
konieczności stosowania dodatkowych układów scalonych.

background image
background image

Licznik T2, podobnie jak licznik T1, T2 może w zależności
od potrzeb, taktować port transmisji szeregowej.
W takim przypadku możliwe jest rozszerzenie zakresów
prędkości transmisji o dodatkowe wartości niedostępne
przy tradycyjnym taktowaniu portu poprzez licznik T1.


Wyszukiwarka

Podobne podstrony:
Konfiguracja pamięci mikrokontrolera 8051 dla programów napisanych w języku C
Podstawy Programowania Mikrokontrolera 8051
Programowanie mikrokontrolerow 8051 w jezyku C
Galka Galka Podstawy Programowania Mikrokontrolera 8051
Podstawy programowania mikrokontrolera 8051
Podstawy programowania mikrokontrolera 8051(300dpi)
Mikrokontroler 8051(1), WAT, semestr IV, Systemy wbudowane
j%eazyk+c+dla+mikrokontroler%f3w+8051%2c+cz%ea%9c%e6+3
Podstawy programowania mikrokontrolera 8051
Porty mikrokontrolera 8051, Teksty(Referaty itp.)
Konfiguracja pamięci mikrokontrolera 8051 dla programów napisanych w języku C
Programowanie mikrokontrolerow 8051 w jezyku C
Podstawy programowania mikrokontrolera 8051(300dpi)
Galka Galka Podstawy Programowania Mikrokontrolera 8051
Podstawy Programowania Mikrokontrolera 8051
Podstawy programowania mikrokontrolera 8051

więcej podobnych podstron