Przerwania w mikrokontrolerze 8051 oraz struktura i programowanie

Wypróbuj Nasz Instrument Do Eliminowania Problemów





Najpotężniejsze i najważniejsze funkcje to przerwania Mikrokontroler 8051 . W większości procesów czasu rzeczywistego, aby poprawnie obsłużyć określone warunki, należy na jakiś czas wstrzymać zadanie - wymaga podjęcia działań - a następnie wrócić do zadania głównego. Do wykonywania tego typu programów niezbędne są przerwania. Całkowicie różni się od metody odpytywania, w której procesor musi sekwencyjnie sprawdzać każde urządzenie i pytać, czy usługa jest wymagana, czy nie, zużywając więcej czasu procesora.

Przerwania w mikrokontrolerze 8051

Przerwania w mikrokontrolerze 8051



Przerwania w mikrokontrolerze 8051 są bardziej pożądane w celu ograniczenia regularnego sprawdzania stanu urządzeń połączonych lub urządzeń wbudowanych. Przerwanie to zdarzenie, które tymczasowo zawiesza program główny, przekazuje sterowanie do specjalnej sekcji kodu, wykonuje funkcję związaną ze zdarzeniem i wznawia główny przepływ programu w miejscu, w którym został przerwany.


Przerwania są różnego typu, takie jak oprogramowanie i sprzęt, maskowalne i niemaskowalne, przerwania stałe i wektorowe itd. Interrupt Service Routine (ISR) pojawia się na obrazie, gdy wystąpi przerwanie, a następnie nakazuje procesorowi podjęcie odpowiedniej akcji dla przerwania, a po wykonaniu ISR sterownik wskakuje do programu głównego.



Rodzaje przerwań w mikrokontrolerze 8051

Mikrokontroler 8051 może rozpoznać pięć różnych zdarzeń, które powodują przerwanie programu głównego od normalnego wykonania. Te pięć źródeł przerwań w 8051 to:

  1. Przerwanie przepełnienia timera 0 - TF0
  2. Przerwanie przepełnienia timera 1 - TF1
  3. Zewnętrzne przerwanie sprzętowe - INT0
  4. Zewnętrzne przerwanie sprzętowe - INT1
  5. Przerwanie komunikacji szeregowej - RI / TI

Przerwania Timer i Serial są generowane wewnętrznie przez mikrokontroler, natomiast przerwania zewnętrzne są generowane przez dodatkowe urządzenia łączące lub przełączniki, które są zewnętrznie podłączone do mikrokontrolera. Te zewnętrzne przerwania mogą być wyzwalane zboczem lub wyzwalane poziomem. Gdy wystąpi przerwanie, mikrokontroler wykonuje procedurę obsługi przerwania, tak że lokalizacja pamięci odpowiada przerwaniu, które to umożliwia. Przerwanie odpowiadające lokacji pamięci jest podane w tabeli wektorów przerwań poniżej.

Tabela wektorów przerwań

Tabela wektorów przerwań

Struktura przerwań sterownika 8051 Micro

Po „Zresetowaniu” wszystkie przerwania zostają wyłączone, a zatem wszystkie te przerwania muszą być włączone przez oprogramowanie. We wszystkich tych pięciu przerwaniach, jeśli ktokolwiek lub wszystkie są aktywowane, ustawia to odpowiednie flagi przerwań, jak pokazano na rysunku. Wszystkie te przerwania mogą być ustawiane lub kasowane bitowo w jakimś specjalnym rejestrze funkcji, którym jest Interrupt Enabled (IE), a to z kolei zależy od priorytetu, który jest wykonywany przez rejestr priorytetów przerwań IP.


Struktura przerwań mikrokontrolera 8051

Struktura przerwań mikrokontrolera 8051

Rejestr włączania przerwań (IE): Ten rejestr jest odpowiedzialny za włączanie i wyłączanie przerwania. Jest to rejestr adresowalny bitowo, w którym EA musi być ustawiony na jeden, aby umożliwić przerwania. Odpowiedni bit w tym rejestrze włącza określone przerwania, takie jak timer, wejścia zewnętrzne i szeregowe. W poniższym rejestrze IE bit odpowiadający 1 aktywuje przerwanie, a 0 wyłącza przerwanie.

Rejestr włączania przerwań (IE)

Rejestr włączania przerwań (IE)

Rejestr priorytetów przerwań (IP): Możliwa jest również zmiana poziomów priorytetów przerwań przez ustawienie lub wyczyszczenie odpowiedniego bitu w rejestrze priorytetu przerwań (IP), jak pokazano na rysunku. Pozwala to przerwaniu o niskim priorytecie na przerwanie przerwania o wysokim priorytecie, ale zabrania przerwania przez inne przerwanie o niskim priorytecie. Podobnie nie można przerwać przerwania o wysokim priorytecie. Jeżeli te priorytety przerwań nie są zaprogramowane, mikrokontroler wykonuje w predefiniowany sposób i jego kolejność to INT0, TF0, INT1, TF1 i SI.

Rejestr IP

Rejestr IP

Rejestr TCON: Oprócz powyższych dwóch rejestrów, rejestr TCON określa typ zewnętrznego przerwania mikrokontrolera 8051, jak pokazano na rysunku. Dwa zewnętrzne przerwania, wyzwalane zboczem lub poziomem, są określane przez ten rejestr przez zestaw lub usuwane przez odpowiednie bity w nim. Jest to także rejestr adresowalny bitowo.

Rejestr TCON

Rejestr TCON

Programowanie przerwań w 8051

Programowanie przerwań czasowych

Przerwania timera 0 i timera 1 są generowane przez bity rejestru timera TF0 i TF1. Te przerwy programowanie za pomocą kodu C. obejmuje:

  • Wybór timera poprzez konfigurację rejestru TMOD i trybu jego działania.
  • Wybieranie i ładowanie początkowych wartości TLx i THx dla odpowiednich trybów.
  • Włączenie rejestrów IE i odpowiadającego im bitu timera.
  • Ustawienie bitu pracy timera, aby uruchomić stoper.
  • Zapisanie podprogramu dla timera na wymagany czas i wyczyszczenie wartości timera TRx na końcu podprogramu.
Programowanie przerwania timera

Programowanie przerwania timera

2. Programowanie zewnętrznych przerwań sprzętowych

Mikrokontrolery 8051 składają się z dwóch zewnętrznych przerwań sprzętowych: INT0 i INT1, jak omówiono wcześniej. Są one włączone na pinie 3.2 i pinie 3.3. Mogą być wyzwalane przez zbocze lub wyzwalane przez poziom. W wyzwalaniu poziomem niski na pinie 3.2 włącza przerwanie, podczas gdy na pinie 3.2 - przejście z wysokiego na niski umożliwia przerwanie wyzwalane zboczem. O wyzwalaniu zboczem lub wyzwalaniu poziomem decyduje rejestr TCON, który został omówiony powyżej. Plik procedura programowania w 8051 następująco:

  • Włącz odpowiedni bit zewnętrznego przerwania w rejestrze IE.
  • Jeśli jest to wyzwalanie poziomem, po prostu napisz podprogram odpowiedni dla tego przerwania, lub włącz bit rejestru TCON odpowiadający przerwaniu wyzwalanemu zboczem - czy jest to INT0 lub INT1.
Programowanie przerwań sprzętowych

Programowanie przerwań sprzętowych

3. Programowanie przerw w komunikacji szeregowej

Przerwania komunikacji szeregowej pojawiają się, gdy istnieje potrzeba wysyłania lub odbierania danych. Ponieważ jeden bit przerwania jest ustawiony dla obu flag TI (Transfer Interrupt) i RI (Receiver Interrupt), procedura obsługi przerwania musi zbadać te flagi, aby poznać rzeczywiste przerwanie.

Operacja logiczna OR tych dwóch flag (RI i TI) powoduje to przerwanie i jest usuwane przez samo oprogramowanie. Tutaj do sterowania używany jest specjalny rejestr SCON Komunikacja działanie poprzez włączenie odpowiednich bitów w nim.

  • Skonfiguruj rejestr IE, aby włączyć przerwanie szeregowe
  • Skonfiguruj rejestr SCON do odbierania lub przesyłania operacji
  • Napisz podprogram dla tego przerwania z odpowiednią funkcją i wyczyść flagi TI lub RI w tej procedurze.
Programowanie przerwania szeregowego

Programowanie przerwania szeregowego

Chodzi o przerwania w mikrokontrolerze 8051, typy, ich strukturę i programowanie. Mam nadzieję, że ten artykuł zawierał dobre informacje. Możesz również napisać do nas w poniższej sekcji komentarzy, aby zapoznać się z implementacją w czasie rzeczywistym projekty mikrokontrolerów abyśmy mogli pomóc Ci w lepszym praktycznym doświadczeniu.

Kredyty fotograficzne