POLITECHNIKA LUBELSKA
KATEDRA ELEKTRONIKI
LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH
SPRAWOZDANIE Z ĆWICZENIA NR. 7
“SYSTEM PRZERWAŃ MIKROKONTROLERA 8051.”
Remigiusz Gwiazda ED 5.4
Paweł Luty ED 5.4
Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie się z przerwaniami mikroprocesora typu 8051, czyli ze sposobem ich blokowania i odblokowywania oraz ustawianiem ich priorytetów.
Zadanie 1.
Celem zadania było uzupełnienie programu przer01.asm tak aby program przyjmował i obsługiwał przerwania od :
a) timera 0
b) timera 1
c) timera 0 i int 1
Aby to umożliwić należało :
- ustawić odpowiednie bity zezwalające na przyjęcie przerwania ,czyli dla poszczególnych przypadków:
a) SETB ET0
b) SETB ET1
c) SETB ET0; SETB EX1
- na końcu obsługi przerwania dopisać instrukcję RETI, która powoduje powrót z obsługi procedury przerwania.
Przykładowo dla punktu c) część listingu programu wyglądała by następująco:
LJMP START
;********* Przerwanie Timer 0 *********
ORG 0BH
LCALL JEST_T0
RETI
;********* Przerwanie INT1 (AC) *********
ORG 13H
LCALL JEST_I1
ORG 100H
;******** Program główny **************
START:
LCALL INICJALIZACJA
SETB ET0
SETB EX1
;....................................
LOOP:
SJMP LOOP
Zadanie 2.
W zadaniu został przeanalizowany program przer02.asm, który przyjmował i obsługiwał przerwania od timerów.
W zależności od liczby początkowej wpisanej do poszczególnych timerów kolejność zgłoszenia przerwania była następująca:
Lp.
Stan pocz. T0
Stan pocz. T1
Kolejność
1.
0000
T0, T1
2.
0001
T1, T0
3.
W przypadku 1 pierwsze zostaje wykonane przerwanie od timera 0 ,gdyż ma ono wyższy priorytet. W przypadku drugim jest na odwrót ,gdyż timer 1 zgłosił przerwanie wcześniej ,przy tym samym priorytecie. Natomiast w przypadku 3 znów pierwsze jest przerwanie od timera 0 ponieważ on pierwszy je zgłosił .
Zadanie 3.
Zadanie było analogiczne do zadania drugiego z tym , że dodatkowo było obsługiwane przerwanie zewnętrzne od przetwornika AC. Kolejność zgłaszania przerwań była następująca:
FFFF
T0, T1, Y0
FF80
FF40
T0, Y0, T1
4.
FF10
Y0, T0, T1
5.
zablokowany
Y0, T1
1) Przerwania od timerów są zgłoszone jako pierwsze, gdyż timery od razu były przepełnione, ponieważ wyższy
priorytet ma T0, więc to przerwanie zostaje wykonane na początku.
2) Kolejność taka sama, gdyż liczba początkowa wpisana do timerów jest na tyle mała ,że przerwanie zewnętrzne
nie zdąży wykonać się wcześniej.
3) W tym przypadku zgłoszenie wszystkich przerwań następuje jednocześnie, ale wykonywane są one od
najwyższego priorytetu czyli T0 ,Y0, T1.
4) Przerwanie zewnętrzne zgłasza się jako pierwsze ,więc jest wykonywane na początku, następne przerwania
zgłaszają się jednocześnie i są wykonywane według priorytetu.
5) Przerwanie od timera 0 jest zablokowane ; przy jednoczesnym zgłoszeniu przerwań od Y0 i T1 wykonywane jest
to pierwsze bo ma wyższy priorytet.
Zadanie 4.
Kolejność wykonanych przerwań:
Timer 0
Timer 1
Stan pocz.
Pr.
0
1
tomasz.kubiak.sap