Timery i liczniki w mikrokontrolerze 8051 i jego aplikacjach

Wypróbuj Nasz Instrument Do Eliminowania Problemów





Wiele z aplikacje mikrokontrolerów wymagają zliczania zdarzeń zewnętrznych, takich jak częstotliwość ciągów impulsów i generowania precyzyjnych wewnętrznych opóźnień czasowych między działaniami komputera. Oba te zadania można zrealizować za pomocą technik programowych, ale pętle oprogramowania do liczenia i pomiaru czasu nie dadzą dokładnego wyniku, a ważniejsze funkcje nie są wykonywane. Aby uniknąć tych problemów, timery i liczniki w mikrokontrolerach są lepszymi opcjami dla prostych i niedrogich aplikacji. Te timery i liczniki są używane jako przerywa w mikrokontrolerze 8051 .

Istnieją dwa 16-bitowe timery i liczniki Mikrokontroler 8051 : timer 0 i timer 1. Oba timery składają się z 16-bitowych rejestrów, w których niższy bajt jest przechowywany w TL, a wyższy bajt w TH. Timer może służyć zarówno jako licznik, jak i do pracy czasowej zależnej od źródła impulsów zegarowych do liczników.




Timery i liczniki

Timery i liczniki

Liczniki i Timery w mikrokontrolerze 8051 zawierają dwa rejestry funkcji specjalnych: TMOD (Rejestr trybu timera) i TCON (Rejestr sterowania timerem), które służą do aktywacji i konfiguracji timery i liczniki .



Sterowanie trybem timera (TMOD): TMOD jest 8-bitowym rejestrem używanym do wyboru timera lub licznika i trybu timerów. Niższe 4 bity są używane do sterowania działaniem timera 0 lub licznika 0, a pozostałe 4 bity są używane do sterowania działaniem timera 1 lub licznika 1. Ten rejestr znajduje się w rejestrze SFR, adres rejestru SFR to 89-ty.

Sterowanie trybem timera (TMOD)

Sterowanie trybem timera (TMOD)

Brama: Jeśli bit bramki jest ustawiony na „0”, wówczas możemy uruchomić i zatrzymać zegar „programowy” w ten sam sposób. Jeśli bramka jest ustawiona na „1”, możemy wykonać zegar sprzętowy.

C / T: Jeśli bit C / T ma wartość „1”, to działa jako tryb licznika i podobnie, gdy ustawiono C +
= / T bit ma wartość „0”, działa jako tryb timera.


Bity wyboru trybu: M1 i M0 to bity wyboru trybu, które są używane do wybierania operacji timera. Istnieją cztery tryby obsługi timerów.

Tryb 0: Jest to tryb 13-bitowy, co oznacza, że ​​działanie timera kończy się impulsami „8192”.

Tryb 1: Jest to tryb 16-bitowy, co oznacza, że ​​działanie timera kończy się maksymalną liczbą impulsów zegara wynoszącą „65535”.

Tryb 2: Ten tryb jest 8-bitowym trybem automatycznego przeładowania, co oznacza, że ​​działanie timera kończy się tylko „256” impulsami zegara.

Tryb 3: Ten tryb jest trybem podzielonego zegara, co oznacza ładowanie wartości w T0 i automatycznie uruchamia T1.

Bity wyboru trybu

Bity wyboru trybu

Wybór trybu Wartości timerów i liczników w 8051

Wartości wyboru trybu timerów i liczników

Wartości wyboru trybu timerów i liczników

Rejestr sterowania timerem (TCON): TCON to kolejny rejestr używany do sterowania operacjami licznika i timerów w mikrokontrolerach. Jest to 8-bitowy rejestr, w którym cztery górne bity są odpowiedzialne za timery i liczniki, a dolne bity są odpowiedzialne za przerwania.

Rejestr sterowania timerem (TCON)

Rejestr sterowania timerem (TCON)

TF1: TF1 oznacza bit flagi „timer1”. Za każdym razem, gdy oblicza się opóźnienie czasowe w timerze1, TH1 i TL1 automatycznie osiągają maksymalną wartość, czyli „FFFF”.

EX: while (TF1 == 1)

Zawsze, gdy TF1 = 1, wyczyść bit flagi i zatrzymaj licznik czasu.

TR1: TR1 oznacza bit startu lub stopu timera1. To uruchomienie timera może odbywać się za pomocą instrukcji oprogramowania lub metodą sprzętową.

EX: bramka = 0 (uruchom zegar 1 za pomocą instrukcji oprogramowania)
TR1 = 1 (włącznik czasowy)

TF0: TF0 oznacza bit flagi „timer0”. Przy obliczaniu opóźnienia czasowego w zegarze 1, TH0 i TL0 automatycznie osiągają maksymalną wartość „FFFF”.

EX: while (TF0 == 1)
Zawsze, gdy TF0 = 1, wyczyść bit flagi i zatrzymaj licznik czasu.

TR0: TR0 oznacza bit startu lub zatrzymania „timera0”. Uruchomienie timera może odbywać się za pomocą instrukcji oprogramowania lub metodą sprzętową.

EX: bramka = 0 (uruchom zegar 1 za pomocą instrukcji oprogramowania)
TR0 = 1 (włącznik czasowy)

Obliczenia opóźnienia czasowego dla mikrokontrolera 8051

Mikrokontroler 8051 pracuje z częstotliwością 11,0592 MHz.

Częstotliwość 11,0592 MHz = 12 kapsułek

1 impuls zegarowy = 11,0592 MHz / 12

F = 0,921 MHz

Opóźnienie czasowe = 1 / F.

T = 1 / 0,92 MHz

T = 1,080506 us (dla cyklu „1”)

1000us = 1 MS

1000 ms = 1 s

Procedura obliczania programu opóźnienia

1. Najpierw musimy załadować wartość rejestru TMOD dla „Timer0” i „Timer1” w różnych trybach. Na przykład, jeśli chcemy obsługiwać timer1 w trybie 1, musi on być skonfigurowany jako „TMOD = 0x10”.

2. Ilekroć używamy timera w trybie 1, timer przyjmuje maksymalne impulsy 65535. Następnie obliczone impulsy opóźnienia czasowego należy odjąć od maksymalnych impulsów, a następnie przekonwertować na wartość szesnastkową. Ta wartość musi być załadowana do wyższego i niższego bitu timera1. Ta operacja timera jest programowana za pomocą osadzone C w mikrokontrolerze .

Przykład: opóźnienie 500us

500us / 1.080806us

461 impulsów

P = 65535-461

P = 65074

65074 konwertowane szesnastkowo = FE32

TH1 = 0xFE

TL1 = 0x32

3. Uruchom licznik czasu1 „TR1 = 1”

4. Monitoruj bit flagi „while (TF1 == 1)”

5. Wyczyść bit flagi „TF1 = 0”

6. Skręć licznik czasu „TR1 = 0”

Przykładowe programy:

Program - 1

Program - 1

Program - 2

Program - 2

Program - 3

Program - 3

Liczniki w 8051

Możemy użyć licznika, utrzymując wartość bitu C / T na wysokim poziomie, tj. Logikę „1” w rejestrze TMOD. Dla lepszego zrozumienia podaliśmy jeden program, który używa timera 1 jako licznika. Tutaj diody LED są podłączone do portu 2 8051, a przełącznik do pinu P3.5 timera1 i dlatego po naciśnięciu przełącznika wartość zostanie policzona. W przeciwnym razie zewnętrzny czujnik podłączony do tego styku licznika jako wejście wykonuje tę operację zliczania.

Program licznika

Program licznika

Zastosowania timerów i liczników w 8051

Licznik cyfrowy z 8051

Licznik cyfrowy z 8051 uzyskuje się przez zaprogramowanie mikrokontrolera w sposób omówiony powyżej i podłączenie do niego systemu czujników. Ten licznik obiektów wykorzystuje czujnik podczerwieni, który wykrywa przeszkodę w pobliżu, a także włącza pin mikrokontrolera 06. Kiedy obiekt przechodzi przez czujniki, mikrokontroler otrzymuje sygnał przerwania z czujników IR i zwiększa liczbę, która jest wyświetlana na 7-segmentowym wyświetlaczu.

Licznik cyfrowy z 8051

Licznik cyfrowy z 8051

Obwód opóźnienia czasowego wykorzystujący mikrokontroler 8051

Poniższy rysunek pokazuje, jak można zaimplementować działanie timera w celu efektywnego przełączania diod LED. Działanie z opóźnieniem dla zestawu diod LED programuje się w mikrokontrolerze w sposób omówiony powyżej. Tutaj zestaw diod LED jest podłączony do portu 2 ze wspólnym układem zasilania. Kiedy ten obwód jest włączony na podstawie opóźnienia czasowego program w mikrokontrolerze odpowiednio, te diody są włączone.

Obwód opóźnienia czasowego

Obwód opóźnienia czasowego

Chodzi o zegar mikrokontrolera 8051 i liczniki z podstawowym programowaniem i obwodami aplikacji. Mamy nadzieję, że informacje zawarte w tym artykule mogły dostarczyć wystarczających danych do lepszego zrozumienia koncepcji. Ponadto w przypadku jakichkolwiek wątpliwości technicznych dotyczących programowania 8051 i jego obwodów, możesz skontaktować się z nami, komentując poniżej.

Kredyty fotograficzne: