M7.DOC

(49 KB) Pobierz
LABORATORIUM PODSTAW TECHNIKI MIKROPROCESOROWEJ

LABORATORIUM PODSTAW TECHNIKI MIKROPROCESOROWEJ

GAWRON MARCIN

DZIKOWSKA DOROTA

Ćw. nr.

11

 

ED 5.1

Data wyk. Ćw.

1999-01-118

Temat : Systemy przerwań mikrokontrolera 8051.

            

 

Zadanie nr.1

Obsługa przerwania Timera0, Timera1, Timera0 i INT1.

 

;************************************************

;ĆWICZENIE 7              - SYSTEM PRZERWAŃ 8051

;ZADANIE   1              - ŹRÓDŁA PRZERWAŃ W 8051

;************************************************

 

;********* Ustawienie TIMERÓW *********

;TIMER 0

T0_G              EQU              0              ;GATE

T0_C              EQU              0              ;COUNTER/-TIMER

T0_M              EQU              1              ;MODE (0..3)

TIM0              EQU              T0_M+T0_C*4+T0_G*8

;TIMER 1

T1_G              EQU              0              ;GATE

T1_C              EQU              0              ;COUNTER/-TIMER

T1_M              EQU              1              ;MODE (0..3)

TIM1              EQU              T1_M+T1_C*4+T1_G*8

 

TMOD_SET              EQU              TIM0+TIM1*16

 

TH0_SET                            EQU              00H                            ;stan początkowy Timera 0. Starszy bajt.

TL0_SET                            EQU              00H                            ;Młodszy bajt.

TH1_SET                            EQU              00H                            ;stan początkowy Timera 1. Starszy bajt.

TL1_SET                            EQU              00H                            ;Młodszy bajt.

 

;**************************************

              LJMP              START

 

;********* Przerwanie Timer 0 *********

              ORG              0BH

              LCALL              JEST_T0

              RETI

 

;********* Przerwanie INT1 (AC) *********

              ORG              13H

              LCALL              JEST_I1

              RETI
;******** Przerwanie Timer 1 *********

              ORG              1BH

              LCALL              JEST_T1

RETI

;******************************************************************

;              Program główny

;

;******************************************************************

              ORG              100H

START:

              SETB EA

              SETB ET0

              SETB EX1

              LCALL              INICJALIZACJA                            ;inicjalizacja źródeł przerwań

LOOP:

              SJMP              LOOP                                          ;koniec programu głównego

 

 

Przez rozkazy SETB EA, SETB ET0, SETB EX1 zostaje ustawiona wartość odpowiednich flag w stan 1, co powoduje zezwolenie na przerwanie. Rozkaz SETB EA ustawia zezwolenie ogólne na przerwanie, natomiast rozkazy SETB ET0, SETB EX1 powoduje uaktywnienie zezwolenia na przerwanie z Timera0 i wejścia INT1. Na wyświetlaczu LCD pojawia się napis I1T0. Wpisanie przed rozkaz SETB EX1 znaku średnika powoduje, że linia ta  jest traktowana jako komentarz. Rozkaz nie będzie więc wykonany. Uaktywnione zostanie tylko zezwolenie na przerwanie ogólne oraz od Timera0, a na wyświetlaczu LCD pojawi się napis T0. Wstawienie na miejsce rozkazu SETB ET0 rozkazu SETB ET1 uaktywnienie zezwolenia na przerwanie z Timera1. Na wyświetlaczu LCD pojawia się napis T1.

 

 

Zadanie nr.2

Ustawienia przerwań od timerów.

 

Wartości początkowe timerów ustawia się przez przypisanie poleceniem EQU określonych wartości poleceniom TH0_SET, TL0_SET, TH1_SET, TL1_SET. W zależności od ustawień początkowych inna jest kolejność wykonania przerwania. Wpisanie następujących wartości początkowych powoduje wyświetlenie odpowiedniej kolejności komunikatu o obsłudze przerwania:

 

 

Lp

Stan pocz. To

Stan pocz. T1

Kolejność

1

0000

0000

T0 T1

2

0000

0001

T1 T0

3

0001

0000

T1 T0

 

 

 

Zadanie nr.3

Przerwania z timerów 0 i 1 oraz linii INT1.

 

 

Lp

Stan pocz. To

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

 

Obsługa przerwania od Timera0 sygnalizowana jest znakami T0, obsługa przerwania od Timera1 sygnalizowana jest znakami T1, obsługa przerwania z linii INT1 (przetwornik A/C) sygnalizowana jest znakami Y0.

 

Zadanie nr.4

Ustawienia wartości początkowych timerów i bitów priorytetów.

 

Ustawienia wartości początkowych timerów dokonuje się jak poprzednio. Ustawienia bitów priorytetów dokonuje się przez zerowanie lub ustawienie w stan 1 odpowiednie flagi z rejestru IP przez rozkazy: SETB              ET1, CLR              PT1, SETB              PT1, SETB              ET0, CLR              PT0, SETB              PT0. Kolejność obsługi przerwania określona jest wysokością priorytetu i obsługa następuje od najwyższego priorytetu.

W zależności od ustawień uzyskuje się kolejności obsługi przerwań:

 

 

...

Zgłoś jeśli naruszono regulamin