2 Wykorzystanie i oprogramowanie timer`ów i systemu przerwań.

Transkrypt

2 Wykorzystanie i oprogramowanie timer`ów i systemu przerwań.
Podstawy Techniki Mikroprocesorowej
Materiały do ćwiczeń laboratoryjnych
5
2 Wykorzystanie i oprogramowanie timer’ów i
systemu przerwań.
Zagadnienia do przygotowania:
- budowa i działanie timerów, systemu przerwań,
- wektor przerwań,
- obsługa przerwań w języku C,
- elementy języka C poznane dotychczas na zajęciach.
2.1 Wstęp
Celem ćwiczenia jest opracowanie programu wykorzystującego układy
liczników/timerów oraz system przerwań. Mikrokontroler ’51 posiada dwa wbudowane
układy, które mogą pracować niezależnie jako układy odliczające czas timers lub zliczające
impulsy counters.
Oba układy programowane są za pomocą dwóch rejestrów TMOD (timer mode)
(rysunek 1) i TCON (timer control) (rysunek 2). Podstawą układów odliczania czasu i
zliczania impulsów są dwa liczniki TL0 i TH0 dla układu Timer0 oraz TL1 i TH1 dla układu
Timer1.
Timer0 / Counter0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
IE0
IT0
Timer1 / Counter1
Rys.1. Rejestr TMOD
TF1
TR1
TF0
TR0
IE1
IT1
Rys.2. Rejestr TCON
Rejestr TMOD składa się z dwóch czterobitowych części, sterujących niezależnie
układami Timer0 i Timer1. Bit GATE decyduje o sposobie kontrolowania pracy timera (‘0’ –
start/stop timera przez ustawienie bitu TR0/1 z rejestru TCON, ‘1’ – o pracy decyduje
dodatkowo stan linii INT0/1). Bity C / T decydują o sposobie działania odpowiadającego
układu jako urządzenia do odliczania czasu (‘0’ - timer) lub zliczania impulsów (‘1’ counter). Bity M0 i M1 decydują o wyborze jednego z czterech trybów zliczania impulsów
(tabela 1) przez pary rejestrów TL0 i TH0 lub TL1 i TH1.
Przygotowanie do pracy układów Timer0 i Timer1 polega na zdecydowaniu czy układ
ma pracować jako urządzenie do odmierzania czasu (timer), czy też jako urządzenie
Podstawy Techniki Mikroprocesorowej
Materiały do ćwiczeń laboratoryjnych
6
zliczające liczbę impulsów (counter). Decyzja ta wymaga ustawienia bitu C / T (‘0’ - timer).
Następnie należy zdecydować o momencie rozpoczęcia działania układów przez ustawienie
bitu TR0/1 (timer run).
Do działania układów timera/licznika konieczne jest przygotowanie obsługi przerwań.
Mikrokontroler ’51 obsługuje pięć niezależnych od siebie źródeł przerwań, których numer,
opis oraz adres umieszczono w tabeli 2.
Tabela 1. Tryby działania układów zliczających i odmierzających czas Timer0 i Timer1
Tryb działania układów
Timer0 i Timer1
M0
M1
0
0
0
1
0
1
2
1
0
3
1
1
Uwagi
Liczniki TL0/1 (5 bitów) i TH0/1 (8 bitów) tworzą licznik binarny, 13
bitowy
Liczniki TL0/1 (8 bitów) i TH0/1 (8 bitów) tworzą licznik binarny, 16
bitowy
Licznik TL0/1 (8 bitów) po osiągnięciu stanu 0x00 jest automatycznie
przeładowywany zawartością rejestru TH0/1 (tryb automatycznego
przeładowania – auto reload)
Timer0
Licznik TL0 (8 bitów) i licznik TH0 (8 bitów) działają niezależnie
Timer1
Ustawienie trybu 3 powoduje zatrzymanie odliczania przez Timer1
(jest równoważne ustawieniu TR1=0)
Tabela 2. Opis przerwań mikrokontrolera ‘51
Dwa z nich, to przerwania zewnętrzne sterowane liniami INT 0 i INT 1 . Kolejne dwa
generowane są przez dwa układy zegar/licznik (Counter/Timer). Ostatnim źródłem przerwań
są układy nadawczy i odbiorczy transmisji szeregowej.
EA
-
-
ES
ET1
EX1
ET0
EX0
Rys.3. Rejestr IE
Rejestr IE (interrupt enable) (rysunek 3) umożliwia udzielanie indywidualnej zgody na
generowania przerwania przez każde ze źródeł. Ponadto jest możliwe udzielenie zgody lub
zabronienie generowania wszystkich przerwań łącznie poprzez zmianę stanu bitu EA (enable
all interrupts).
Objaśnienie bitów w rejestrze IE:
Podstawy Techniki Mikroprocesorowej
Materiały do ćwiczeń laboratoryjnych
7
EA – ogólne zezwolenie na przerwania,
ES – zezwolenie na przerwanie z transmisji szeregowej,
ET1 – zezwolenie na przerwanie z Timera1,
EX1 – zezwolenie na przerwanie z wejścia INT1,
ET0 – zezwolenie na przerwanie z Timera0,
EX0 – zezwolenie na przerwanie z wejścia INT0.
2.2 Ćwiczenia do wykonania
2.2.1 Cykliczne zapalanie i gaszenie diody
Przed rozpoczęciem pisania właściwej treści programu należy utworzyć i
skonfigurować nowy projekt.
Korzystając z wiadomości zdobytych na zajęciach pierwszych oraz znając adres diody
LED opracować program, którego wykonanie spowoduje cykliczne zapalanie i gaszenie diody
testowej:
-
dodać plik nagłówkowy REGX51.h,
wskazówka: użyć adresacji linii portu, sprawdzić zawartość pliku nagłówkowego
REGX51.h,
wskazówka: wykorzystać rejestry TMOD, TCON oraz IE,
wskazówka: wykorzystać słowo kluczowe: interrupt definiujące funkcje
przerwania – dokumentacja techniczna środowiska KEIL uVISION2, plik
C51.pdf.
2.2.2 Zmniejszenie częstotliwości cyklicznego zapalania i gaszenia diody
Korzystając z wiadomości wykorzystanych w poprzednim programie, opracować
program, którego wykonanie spowoduje zmniejszenie częstotliwości zapalania i gaszenia
diody testowej.
2.2.3 Zwiększenie częstotliwości cyklicznego zapalania i gaszenia diody
Opracować program, którego wykonanie spowoduje zwiększenie częstotliwości
zapalania i gaszenia diody testowej:
- wskazówka: zwiększanie o 1 w każdym cyklu maszynowym procesora zawartości
rejestrów TL0 i TH0 lub TL1 i TH1.
2.2.4 Zmiana jasności świecenia diody
Opracować program, którego wykonanie spowoduje zmianę jasności świecenia diody
testowej:
- wskazówka: wykorzystać tryb nr 2 pracy timerów (rejestr TMOD).
Podstawy Techniki Mikroprocesorowej
Materiały do ćwiczeń laboratoryjnych
8
2.3 Rozszerzenia ćwiczeń
2.3.1 Jednoczesne zapalenie i gaszenie diody oraz cykliczne
uruchamianie i wyłączanie brzęczyka
Korzystając z wiedzy zdobytej w punkcie 1.2 należy opracować program, którego
wykonanie spowoduje jednoczesne zapalanie i gaszenie diody oraz cykliczne uruchamianie i
wyłączanie brzęczyka (wykorzystać dwa timer’y).

Podobne dokumenty