background image

Informatyka Studia Dzienne

Laboratorium Architektury Komputerów

Ćwiczenie 11

System przerwań mikrokontrolera 8051.

Przygotowanie:
Krzysztof Tokarz

background image

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

-

background image

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.