Mikroprocesory, PROCES~3, 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 s; 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

0001

0

T1;T0

4

0000

1

0001

0

T0;T1

5

0000

1

0001

1

T1;T0

Priorytety obsługiwania przerwań zgłoszonych jednocześnie służą jedynie do rozstrzygnięcia, które z przerwań ma być obsłużone pierwsze, drugie, itd. w przypadku, gdy zostaną zgłoszone jednocześnie. Podstawę do przerwania obsługi innego przerwania stanowi jedynie wyższy priorytet ustawiony w rejestrze IP. Zatem obsługa dowolnego przerwania o priorytecie równym 0 może być przerwana jedynie przez przerwanie o priorytecie 1, a obsługa tego przerwania nie może być przerwana już przez żadne inne przerwanie.

5. Jednoczesne przyjmowanie przerwań.
Jednocześnie zgłaszane przerwania, jeśli nie zmienimy ich priorytetów, są obsługiwane w kolejności :
- Linia INT0,
- Timer T0,
- Linia INT1,
- Timer T1,
- Transmisja szeregowa.
Jest to kolejność, jaką system przyjmuje za domyślną.
Aby obsłużyć jednocześnie przychodzące przerwania w kolejności : T0; T1; INT1 należy ustawić priorytet T0 na 1 (bit rejestru IP - PT1=1), wtedy kolejno zostaną obsłużone przerwania jak wyżej. Nie jest natomiast możliwe ustawienie kolejności : T1; INT1; T0, bo jeżeli ustawimy priorytet T1 na 1 i INT1 na 1 system domyślnie, z dwóch przerwań o takim samym priorytecie, przyjmie domyślną kolejność obsługi przerwań - najpierw INT1, potem T1.



Wyszukiwarka

Podobne podstrony:
Mikroprocesory Procesory8
Wykład XV Mikroprogramowane układy sterujące
PROCES5, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY
SYSTEM MIKROPROCESOROWY, Technik Informatyk, PROCESORY
Magistrale i sygnały sterujące mikroprocesora, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk,
MIKROPRO, Mikroprocesory 8086 i 8088 nale˙˙ do jednych z pierwszych 16-to bitowych procesor˙w. Ich l
Antropologia peryferyjnego rynku pracy – rola kultury w wyjaĂnianiu procesu zatrudniania pracowników
W4 Proces wytwórczy oprogramowania
WEWNĘTRZNE PROCESY RZEŹBIĄCE ZIEMIE
Proces tworzenia oprogramowania
Proces pielęgnowania Dokumentacja procesu
19 Mikroinżynieria przestrzenna procesy technologiczne,
4 socjalizacja jako podstawowy proces spoeczny
modelowanie procesˇw transportowych

więcej podobnych podstron