78 8. Przerwania
Tabela 8-3. Poziomy przerwań w mikrokontrolerach 80C515/535
Znaczniki 1P1.x IP0.x |
Poziom przerwania | |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
2 |
1 |
1 |
3 |
Ponieważ liczba znaczników jaka jest do dyspozycji jest za mała, by u-stawić poziomy przerwań dla wszystkich źródeł, dlatego źródła przerwań zostały połączone wr pary i przypisane do odpowiednich znaczników. Przedstawia to tabela 8-4.
Para źródeł przerwań znajduje się zawsze na tym samym poziomie i nie może wzajemnie przerywać podprogramu obsługi przerwań. Na przykład sygnał przerwania od przetwornika A/C (IADC) nie może przerwać podprogramu obsługi przerwania zewnętrznego INTO i odwrotnie.
Tabela 8-4. Powiązanie źródeł przerwań ze znacznikami.
Znaczniki |
Źródła przerwań | |
IP1.0, IPO.O |
IEO |
IADC |
IP1.1, IP0.1 |
TFO |
IEX2 |
IP1.2, IP0.2 |
IE1 |
IEX3 |
IP1.3, IP0.3 |
TF1 |
IEX4 |
IP1.4, IP0.4 |
RI+TI |
IEX5 |
1P1.5, IP0.5 |
TF2+EXF2 |
IEX6 |
Poniższy przykład ilustruje sposób wejścia do programu głównego i podprogramu obsługi przerwania zewnętrznego INTO.
.*»»***»**»**łł*iM»******ł**********Mł****it»ił***'**»******»ł****ł**i»**
ORGO |
;adres 0 | |
LJMP |
PROG_GL |
;skok do programu głównego |
ORG 3 |
;adres 3, przerwanie INTO | |
LJMP |
PP_INT0 ;wnętrznego INTO |
;skok do podprogramu obsługi przerwania ze- |
PPJNTO: |
;podprogram obsługi przerwania INTO | |
PUSH |
ACC |
;schowanie na stos akumulator |
PUSH |
PSW |
;rejestru statusowego |
PUSH |
DPL |
; rejestru |
PUSH |
DPH |
;DPTR |
;zerowanie znacznika przerwania. Przerwanie
t
-CLR , ET° "ł
/' l \ 6*^ S7'IA* a-^*-
/ POP DPI i 9 .
POP DPL POP PSW POP ACC RETI
PROG_GL:
ORL IE##81h
CLR ITO
/
/
;ciąg dalszy programu ;głównego
;jest ustawione na poziom
;odtworzenie rejestru
;DPTR
;PSW
;akumulatora ;powrót z podprogramu
n
<A
;program główny C1
;ustawienie znacznika EA przerwania ogólnego ' ;i znacznika EX0 przerwania zewnętrznego ;układ przerwania będzie reagował na poziom ;sygnału na wejściu INTO. Rozkaz może być ;pominięty, ponieważ zerowanie procesora ;powoduje również wyzerowanie tego ; znacznika.
1. Na czym polega działanie przerwania ?
2. Jak są rozmieszczone adresy przerwań w mikrokontrolerach rodziny '51?
3. Jakie znaczniki w rodzinie mikrokontrolerów '51 są automatycznie zerowane po wejściu do podprogramu obsługi przerwania ?
4. Ile cykli maszynowych może wykonać procesor w rodzinie '51 od momentu przyjęcia sygnału przerwania do momentu wrejścia do procedury obsługi przerwania ?
5. Jaka jest różnica w działaniu mikrokontrolera rodziny '51 gdy podprogram obsługi przerwania zostanie zakończony rozkazem RET i RETI ?
6- W jaki sposób jest określana kolejność obsługi przerwania przy nadejściu kilku sygnałów przerwania jednocześnie ?
7. Z czym są związane poziomy przerwań ?