MIKROPR7.DOC

(24 KB) Pobierz
POLITECHNIKA LUBELSKA

 

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

        RETI

 

       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

0000

T0, T1

2.

0000

0001

T1, T0

3.

0001

0000

T0, T1

 

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:

 

 

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

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ń:

 

 

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

...
Zgłoś jeśli naruszono regulamin