PROCES~3.DOC

(20 KB) Pobierz
BITY STERUJ¥CE










Politechnika Lubelska
Wydział Elektryczny






Laboratorium techniki mikroprocesorowej
Ćwiczenie 7: System przerwań mikrokontrolera 8051.















Paweł Czerwiec

Tomasz Wójtowicz

Rafał Sidor


1. Przyjmowanie i obsługa przerwań.
Aby system przyjmował i obsługiwał przerwania decyduje odpowiednie ustawienie rejestru IE (interrupt enable)

IE7

IE6

IE5

IE4

IE3

IE2

IE1

IE0

EA

-

-

ES

ET1

EX1

ET0

EX0

EA - ogólne zezwolenie na przerwanie
ES - zezwolenie na przerwanie z transmisji szeregowej
ET1 - zezwolenie na przerwanie z timera 1
EX1 - zezwolenie na przerwanie z wejścia INT1
ET0 - zezwolenie na przerwanie z timera 0
EX0 - zezwolenie na przerwanie z wejścia INT0
Ustawienie odpowiedniej flagi na 1 zezwala na przyjęcie przerwania. Aby jakiekolwiek przerwanie mogło być odebrane, musi być włączone ogólne zezwolenie na przerwanie.
Aby system przejmował przerwania tylko od timera 1 należy ustawić flagę ET1 a wyzerować flagi ES, EX1, ET0, EX0.

2. Kolejność przyjmowania przerwań od timerów.
Testowany program reaguje tylko na przerwania od timerów. Timery uruchamiane są jednocześnie i od ustawienia stanów początkowych zliczają impulsy zegara wewnętrznego. W momencie przepełnienia się liczników następuje wysłanie przerwania. Czas upływający od startu timera do przerwania jest tym krótszy im większą wartość początkową ustawimy w timerze. Kolejność odbierania przerwań pokazana jest w poniższej tabelce.
 

Lp.

stan pocz. T0

stan pocz. T1

kolejność

1

0000

0000

T0;T1

2

0000

0001

T1;T0

3

0001

0000

T0;T1

Powyższa kolejność jest podyktowana priorytetem ważności przerwań. Kontroler 8051 w przypadku przyjęcia dwóch przerwań jednocześnie pierwsze obsługuje przerwanie, które ma wyższy priorytet. Dla timerów wyższy priorytet ma przerwanie od timera T0.

3. Kolejność przyjmowania przerwań od timerów i z linii INT1.
Do linii INT1 jest dołączony przetwornik a/c, którego czas przetwarzania wynosi ok. 150 ms; po takim czasie przetwornik wysyła przerwanie na linię INT1. Dobierając odpowiednie wartości początkowe timerów możemy powodować, że przerwanie każdego z timerów mogą się pojawiać przed i po przerwaniu z linii INT1. Kolejność przyjmowania przerwań przez system przy różnych kombinacjach kolejności wysyłania przerwań przedstawiony jest w poniższej tabelce.
 

Lp.

stan pocz. T0

stan pocz. T1

kolejność

1

FFFF

FFFF

T0;T1;Y0

2

FF80

FF80

T0;T1;Y0

3

FF40

FF40

T0;Y0;T1

4

FF10

FF10

Y0;T0;T1

5

ZABLOKOWANY

FF40

T1;Y0

Przy jednoczesnym przyjęciu przerwań z T0;T1;INT1 system najpierw obsłuży przerwanie z T0, potem z INT1, a na końcu z T1.

4. Programowe ustawianie priorytetów przerwań.
W systemie 8051 można ustawiać priorytety zmieniając stany bitów rejestru IP. Każde przerwanie ma w rejestrze IP swój bit priorytetu. Ustawienie odpowiednich bitów w rejestrze IP ustala dla każdego przerwania poziom priorytetu. Poziom 1 posiada wyższy priorytet niż poziom 0. Obsługa innego przerwania może być przerwana tylko przez przerwanie o wyższym priorytecie. Przerwanie o priorytecie niższym lub równym od obsługiwanego musi zaczekać na koniec obsługi. Poniżej jest  przedstawiona kolejność obsługi przerwań od timerów T0 i T1 w zależności od ustawionych priorytetów.

Lp.

Timer 0

Timer 1

Kolejność

 

Stan pocz.

Pr.

Stan pocz.

Pr.

 

1

0000

0

0000

0

T0;T1

2

0000

0

0000

1

T1;T0

3

0000

0

...

Zgłoś jeśli naruszono regulamin