W układzie 8051 jest zaimplementowany system wieloźródłowy przerwań o dwóch priorytetach z możliwością zagnieżdżania. Czas reakcji po wystąpieniu żądania obsługi zawiera się między 3 a 7 s przy zegarze 12MHz. Mikrokomputer 8051 akceptuje żądania przerwań z pięciu źródeł. Są nimi: dwa zewnętrzne urządzenia zgłaszające przerwanie przez końcówki INT0 i INT1, po jednym przerwaniu od każdego z dwóch układów czasowych/liczników oraz jedno przerwanie od portu szeregowego. Każde przerwanie ma przydzielony adres, po którym powinna być umieszczona procedura obsługi. Każdemu z pięciu przerwań może być przydzielony jeden z dwóch poziomów priorytetów, ponadto każde z przerwań może być niezależnie blokowane lub odblokowywane. Przerwania zewnętrzne mogą być zaprogramowane na zgłaszanie poziomem lub zboczem sygnału. Aktywny jest poziom niski, co umożliwia konstruowanie systemu przerwań wykorzystującego sumowanie na szynie, dzięki czemu można do jednego wejścia dołączyć kilka urządzeń. Poszczególne źródła przerwań mają przyznawane poziomy priorytetów jako wyższe lub niższe przez ustawienie odpowiednich bitów w rejestrze priorytetu przerwań. Ustawiając te bity w stan 1, przyznawany jest danemu przerwaniu wyższy priorytet.
Szczegółowo system przerwań może przyjmować zgłoszenia następujących przerwań:
a). zewnętrznych:
- z wejścia INT0 (zn.IE0),
- z wejścia INT1 (zn.IE1),
b). z układu czasowo - licznikowego:
- przepełnienie licznika T0 (zn. TF0),
- przepełnienie licznika T1 (zn. TF1),
c). z portu szeregowego:
- koniec nadawania znaku (TI) lub koniec odbierania znaku (RI).
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
EA |
- |
ET2 |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
MSB LSB
EA - uaktywnienie przerwań (ten bit powinien być ustawiony na „1” jeśli jakiekolwiek przerwanie ma być przyjmowane)
ET2 - maska przerwań od licznika T2 (uwaga bity zgłaszające w rejestrze T2CON nie są kasowane automatycznie w chwili przyjęcia przerwania należy wyzerować bit TF2 programowo)
ES - maska przerwań od nadawania i odbioru przez port szeregowy T2 (uwaga bity zgłaszające w rejestrze SCON nie są kasowane automatycznie w chwili przyjęcia przerwania należy wyzerować bity TI oraz RI programowo)
ET1 - maska przerwań od licznika T1
EX1 - maska przerwań zewnętrznych na INT1
ET0 - maska przerwania od licznika T0
EX0 - maska przerwań zewnętrznych na INT0
We wszystkich przypadkach: „0” maskuje przerwanie
„1” odmaskowuje przerwanie
ADRESY OBSŁUGI PRZERWANIA w pamięci programu:
INT0 - 0003h
T0 - 000Bh
INT1 - 0013h
T1 - 001Bh
port szeregowy - 0023h
T2 - 002Bh