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
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)
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
Wybór trybu Wartości timerów i liczników w 8051
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)
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 - 2
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
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
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
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:
- Licznik cyfrowy z 8051 wg obwód dziś
- Obwód opóźnienia czasowego wg vshamu