Informatyka Studia Dzienne
Laboratorium Architektury Komputerów
Ćwiczenie 11
System przerwań mikrokontrolera 8051.
Przygotowanie:
Krzysztof Tokarz
1. Cel ćwiczenia.
Celem ćwiczenia jest poznanie:
- budowy systemu przerwań mikrokontrolera 8051,
- mechanizmu zgłaszania i obsługi przerwań,
- układów czasowo-licznikowych.
2. System przerwań mikrokontrolerów 8051.
W mikrokontrolerach z rodziny 8051 każdemu z przerwań jest przyporządkowany stały adres
procedury obsługi przerwania. Adresy procedur są umieszczone na początku przestrzeni pamięci
programu według następującego porządku:
Źródło przerwania
Adres
Przerwanie zewnętrzne INT0
03h
Przerwanie timera T0
0Bh
Przerwanie zewnętrzne INT1
13h
Przerwanie timera T1
1Bh
Przerwanie portu szeregowego
23h
Przerwanie timera T2 (tylko 8052)
2Bh
Przyjęcie przerwania jest możliwe jeśli jest ono odblokowane. Do sterowania włączaniem i
wyłączaniem przerwań służy rejestr maski IE. Jest on dostępny w trybie bitowym więc można
włączać wybrane przerwania instrukcją SETB (wpisanie jedynki) i wyłączać instrukcją CLR
(wyzerowanie bitu). Najstarszy bit rejestru IE służy do włączania lub wyłączania całego systemu
przerwań. W razie jednoczesnego zgłoszenia kilku przerwań obsługiwane są one w kolejności
priorytetów. Najwyższy priorytet ma przerwanie zewnętrzne INT0, najniższy przerwanie timera T2.
Dodatkowy rejestr oznaczony IP służy do przeniesienia przerwań na wyższy poziom priorytetu.
Przerwanie, które ma w tym rejestrze wpisaną jedynkę, ustawione jest na wyższy poziom priorytetu,
co oznacza że w trakcie jego obsługi nie może być przyjęte żadne inne przerwanie. Nazwy
poszczególnych bitów w rejestrach IE oraz IP wraz z ich przypisaniem do poszczególnych przerwań
przedstawiono w poniższej tabeli:
Źródło przerwania
Numer bitu
Bit w rejestrze IE
Bit w rejestrze IP
Przerwanie zewnętrzne INT0
0
EX0
PX0
Przerwanie timera T0
1
ET0
PT0
Przerwanie zewnętrzne INT1
2
EX1
PX1
Przerwanie timera T1
3
ET1
PT1
Przerwanie portu szeregowego
4
ES
PS
Przerwanie timera T2 (tylko 8052)
5
ET2
PT2
6
-
-
Cały system przerwań
7
EA
-
3. Zgłaszanie i obsługa przerwań.
Przerwania mogą być zgłaszane sprzętowo po wystąpieniu zdarzenia związanego z urządzeniem,
którego dotyczy przerwanie, a więc:
–
pojawienie się opadającego zbocza na wejściu przerwania zewnętrznego INT0 lub INT1,
–
przepełnienie licznika T0, T1 lub T2,
–
zakończenie wysyłania bajtu lub odebranie bajtu łączem szeregowym.
Sprzętowe zgłoszenie przerwania powoduje ustawienie znacznika zgłaszanego przerwania.
Przerwania mogą być także zgłaszne programowo poprzez ustawienie wybranego znacznika. Część
z tych znaczników jest automatycznie zerowanych po przyjęciu przerwania. Nie są zerowane
znaczniki RI, TI odpowiedzialne za port szeregowy oraz TF2 i EXF2 związane z licznikiem T2.
Znaczniki te należy wyzerować w procedurze obsługi przerwania.
Przy zgłaszaniu przerwania na stos odkładany jest wyłącznie adres powrotu, wszelkie używane
rejestry (w tym także rejestr znaczników) należy odłożyć na stos w procedurze obsługi. Powrót z
procedury powinien następować instrukcją RETI.
4. Układy czasowo-licznikowe T0 i T1.
Układy czasowo-licznikowe T0 i T1 służą do zliczania impulsów zewnętrznych podawanych na
wejścia T0 i T1 lub do odmierzania czasu na podstawie impulsów z zegara systemowego. Układy te
mogą pracować w czterech trybach:
–
tryb 0 – licznik trzynastobitowy,
–
tryb 1 – licznik szesnastobitowy,
–
tryb 2 – licznik ośmiobitowy z automatycznym ładowaniem wartości początkowej,
–
tryb 3 – tylko licznik T0 – dwa liczniki ośmiobitowe.
Do sterowania pracą liczników służą dwa słowa sterujące: TMOD i TCON (część bitów w rejestrze
TCON służy do sterowania przerwaniami).
Numer bitu
TMOD
Znaczenie bitu
TCON
Znaczenie bitu
0
M0
Tryb pracy T0
IT0
INT0: 0-poziomem 1-zboczem
1
M1
Tryb pracy T0
IE0
Znacznik przerwania INT0
2
C/T
Licznik/czasomierz T0
IT1
INT1: 0-poziomem 1-zboczem
3
GATE
Bramkowanie T0
IE1
Znacznik przerwania INT1
4
M0
Tryb pracy T1
TR0
Włącznik licznika T0
5
M1
Tryb pracy T2
TF0
Znacznik przepełnienia T0
6
C/T
Licznik/czasomierz T1
TR1
Włącznik licznika T1
7
GATE
Bramkowanie T1
TF1
Znacznik przepełnienia T1
5. Przebieg ćwiczenia laboratoryjnego.
Należy przeanalizować dwa programy:
–
program zmieniający cyklicznie co 1 sek. stan diody TEST,
–
program obsługi multipleksowanego wyświetlacza LED.
W obu programach odmierzanie niezbędnych przedziałów czasowych odbywa się z wykorzystaniem
układów czasowo-licznikowych zgłaszających przerwanie okresowe.