Interrupts im 8051-Mikrocontroller sowie Struktur und Programmierung

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





Die mächtigsten und wichtigsten Funktionen sind Interrupts in 8051 Mikrocontroller . In den meisten Echtzeitprozessen muss die eigentliche Aufgabe für einige Zeit angehalten werden - es sind die erforderlichen Maßnahmen erforderlich - und dann zur Hauptaufgabe zurückkehren, um bestimmte Bedingungen ordnungsgemäß zu handhaben. Für die Ausführung solcher Programme sind Interrupts erforderlich. Es unterscheidet sich vollständig von der Abfragemethode, bei der der Prozessor nacheinander jedes Gerät überprüfen und fragen muss, ob der Dienst erforderlich ist oder nicht, während er mehr Prozessorzeit verbraucht.

Interrupts im 8051-Mikrocontroller

Interrupts im 8051-Mikrocontroller



Interrupts im 8051-Mikrocontroller sind wünschenswerter, um die regelmäßige Statusprüfung der Schnittstellengeräte oder eingebauten Geräte zu reduzieren. Interrupt ist ein Ereignis, bei dem das Hauptprogramm vorübergehend angehalten, die Steuerung an einen speziellen Codeabschnitt übergeben, die ereignisbezogene Funktion ausgeführt und der Hauptprogrammfluss dort fortgesetzt wird, wo er aufgehört hat.


Es gibt verschiedene Arten von Interrupts wie Software und Hardware, maskierbare und nicht maskierbare, feste und Vektor-Interrupts usw. Die Interrupt Service Routine (ISR) wird angezeigt, wenn ein Interrupt auftritt, und weist den Prozessor an, geeignete Maßnahmen für den Interrupt zu ergreifen. Nach der ISR-Ausführung springt der Controller in das Hauptprogramm.



Arten von Interrupts im 8051-Mikrocontroller

Der 8051-Mikrocontroller kann fünf verschiedene Ereignisse erkennen, die dazu führen, dass das Hauptprogramm die normale Ausführung unterbricht. Diese fünf Interruptquellen in 8051 sind:

  1. Timer 0 Überlauf Interrupt- TF0
  2. Überlaufunterbrechung von Timer 1 - TF1
  3. Externer Hardware-Interrupt - INT0
  4. Externer Hardware-Interrupt - INT1
  5. Serielle Kommunikationsunterbrechung - RI / TI

Die Timer- und seriellen Interrupts werden intern vom Mikrocontroller generiert, während die externen Interrupts zusätzlich generiert werden Schnittstellengeräte oder Schalter, die extern an den Mikrocontroller angeschlossen sind. Diese externen Interrupts können flanken- oder pegelgetriggert sein. Wenn ein Interrupt auftritt, führt der Mikrocontroller die Interrupt-Serviceroutine so aus, dass der Speicherort dem Interrupt entspricht, der ihn aktiviert. Der dem Speicherort entsprechende Interrupt ist in der folgenden Interruptvektortabelle angegeben.

Vektortabelle unterbrechen

Vektortabelle unterbrechen

Interrupt-Struktur des 8051-Mikrocontrollers

Beim Zurücksetzen werden alle Interrupts deaktiviert. Daher müssen alle diese Interrupts von einer Software aktiviert werden. Wenn in all diesen fünf Interrupts jemand oder alle aktiviert sind, werden die entsprechenden Interrupt-Flags gesetzt, wie in der Abbildung gezeigt. Alle diese Interrupts können in einem speziellen Funktionsregister, das Interrupt Enabled (IE) ist, bitweise gesetzt oder gelöscht werden, und dies hängt wiederum von der Priorität ab, die vom IP-Interrupt-Prioritätsregister ausgeführt wird.


Interrupt-Struktur des 8051-Mikrocontrollers

Interrupt-Struktur des 8051-Mikrocontrollers

Interrupt Enable (IE) -Register: Dieses Register ist für das Aktivieren und Deaktivieren des Interrupts verantwortlich. Es ist ein bitadressierbares Register, in dem EA auf eins gesetzt werden muss, um Interrupts zu aktivieren. Das entsprechende Bit in diesem Register ermöglicht bestimmte Interrupts wie Timer, externe und serielle Eingänge. Im folgenden IE-Register aktiviert das Bit, das 1 entspricht, den Interrupt und 0 deaktiviert den Interrupt.

Interrupt Enable (IE) -Register

Interrupt Enable (IE) -Register

Interrupt Priority Register (IP): Es ist auch möglich, die Prioritätsstufen der Interrupts zu ändern, indem das entsprechende Bit im IP-Register (Interrupt Priority) gesetzt oder gelöscht wird, wie in der Abbildung gezeigt. Dies ermöglicht es dem Interrupt mit niedriger Priorität, den Interrupt mit hoher Priorität zu unterbrechen, verhindert jedoch die Unterbrechung durch einen anderen Interrupt mit niedriger Priorität. Ebenso kann der Interrupt mit hoher Priorität nicht unterbrochen werden. Wenn diese Interrupt-Prioritäten nicht programmiert sind, wird der Mikrocontroller auf vordefinierte Weise ausgeführt und seine Reihenfolge ist INT0, TF0, INT1, TF1 und SI.

IP-Register

IP-Register

TCON-Register: Zusätzlich zu den obigen zwei Registern gibt das TCON-Register den Typ des externen Interrupts für den 8051-Mikrocontroller an, wie in der Abbildung gezeigt. Die zwei externen Interrupts, ob Flanke oder Pegel ausgelöst, werden durch dieses Register durch einen Satz spezifiziert oder durch entsprechende Bits darin gelöscht. Und es ist auch ein bisschen adressierbares Register.

TCON-Register

TCON-Register

Programmierung in 8051 unterbrechen

1.Timer Interrupt Programming

Timer 0- und Timer 1-Interrupts werden durch die Timer-Registerbits TF0 und TF1 erzeugt. Diese Interrupts Programmierung mit C-Code beinhaltet:

  • Auswahl des Timers durch Konfiguration des TMOD-Registers und seiner Betriebsart.
  • Auswählen und Laden der Anfangswerte von TLx und THx für geeignete Modi.
  • Aktivieren der IE-Register und des entsprechenden Timer-Bits.
  • Setzen des Timer-Laufbits zum Starten des Timers.
  • Schreiben Sie die Unterroutine für den Timer für die erforderliche Zeit und löschen Sie den Timerwert TRx am Ende der Unterroutine.
Timer-Interrupt-Programmierung

Timer-Interrupt-Programmierung

2.Externe Hardware-Interrupt-Programmierung

8051-Mikrocontroller bestehen aus zwei externen Hardware-Interrupts: INT0 und INT1, wie zuvor erläutert. Diese sind an Pin 3.2 und Pin 3.3 aktiviert. Diese können flanken- oder pegelgetriggert sein. Bei der Pegelauslösung aktiviert das Low an Pin 3.2 den Interrupt, während an Pin 3.2 - der High-Low-Übergang den flankengetriggerten Interrupt aktiviert. Diese Flankenauslösung oder Pegelauslösung wird durch das oben diskutierte TCON-Register entschieden. Das Programmiervorgang in 8051 ist wie folgt:

  • Aktivieren Sie das entsprechende externe Interrupt-Bit im IE-Register.
  • Wenn es sich um eine Pegelauslösung handelt, schreiben Sie einfach das für diesen Interrupt geeignete Unterprogramm oder aktivieren Sie das TCON-Registerbit, das dem flankengetriggerten Interrupt entspricht - unabhängig davon, ob es sich um INT0 oder INT1 handelt.
Externe Hardware-Interrupt-Programmierung

Externe Hardware-Interrupt-Programmierung

3.Serial Communication Interrupt Programming

Serielle Kommunikationsunterbrechungen treten auf, wenn Daten gesendet oder empfangen werden müssen. Da ein Interrupt-Bit sowohl für TI-Flags (Transfer Interrupt) als auch für RI-Flags (Receiver Interrupt) gesetzt ist, muss die Interrupt Service-Routine diese Flags untersuchen, um den tatsächlichen Interrupt zu ermitteln.

Die logische ODER-Verknüpfung dieser beiden Flags (RI und TI) verursacht diesen Interrupt und wird nur von der Software gelöscht. Hier wird ein spezielles Register SCON zur Steuerung verwendet Kommunikation Betrieb durch Aktivieren der entsprechenden Bits darin.

  • Konfigurieren Sie das IE-Register zum Aktivieren des seriellen Interrupts
  • Konfigurieren Sie das SCON-Register für den Empfang oder die Übertragung
  • Schreiben Sie eine Unterroutine für diesen Interrupt mit der entsprechenden Funktion und löschen Sie in dieser Routine TI- oder RI-Flags mit.
Serielle Interrupt-Programmierung

Serielle Interrupt-Programmierung

Hier geht es um Interrupts im 8051-Mikrocontroller, Typen, deren Struktur und Programmierung. Ich hoffe, Sie haben gute Informationen von diesem Artikel erhalten. Sie können uns auch im folgenden Kommentarbereich für die Echtzeitimplementierung von schreiben Mikrocontroller-Projekte damit wir Sie für eine bessere praktische Erfahrung unterstützen können.

Bildnachweis