Kostenloser Elektrotechnik VIDEO-Kurs


Grundlagen der Elektrotechnik, Gleichstromnetze und Berechnungsverfahren
Wechselstrom- und Drehstromnetze, elektrische Maschinen und Regelungstechnik
Digitaltechnik, Mikrocontrollertechnik und C-Programmierung


Externe Interrupts beim 8051


Heute geht es nun um die Programmierung eines externen Interrupts. Die Programmierung eines externen Interrupts ist eigentlich sehr einfach.

Lediglich einige wichtige Register, die über die Special Function Register des 8051 erreicht werden können, müssen gesetzt werden. Dann muss noch die gewünschte Interrupts Service Routine erstellt werden und schon kann auf externe Signale reagiert werden.

Der heutige Artikel besteht aus 2 Videos. Im ersten Video erläutere ich die wichtigsten Register, die ich hier noch einmal aufführe.

Register für den Interrupt INT0

/INT0 am Portpin 3.2:
An diesen Anschluss muss das Signal für den externen Interrupt 0 angeschlossen werden.

EAL, Enable All Interrupts:
EAL muss gleich 1 gesetzt werden, damit eine Anforderung eines Interrupts überhaupt durchgelassen werden können. Dieses Bit ist nach dem Start des Controllers auf 0 gesetzt. Interrupts werden also zunächst nicht zugelassen. So kann das Gesamtsystem zunächst einmal initialisiert werden, ohne von Interrupts gestört zu werden.

EX0, Enable eXternal Interrupt 0:
schaltet den externen Interrupt 0 Freitag

IT0:       
0 bedeutet pegelgesteuerter Interrupt
1 bedeutet flankengesteuerter Interrupt

IE0: ist das zugehörige Interrupt Pendig Flag,
das auch per Software gesetzt werden kann. SO könnte man eine Interrupt Service Routine auch per Software auslösen, ein sogenannter Software Trap.

 

Externer Interrupt 0

Jetzt aber zum Video ;-)




Der Externer Interrupt 0 umgesetzt

Im folgenden Video zeige ich eine Umsetzung des externen Interrupts 0, bei der ich auch den Unterschied zwischen flankengesteuertem Interrupt und pegelgesteuerten Interrupt erläutere.

 

Deine Aufgabe

Heute lohnt es sich wieder eine Funktion für den Kaffeeautomaten zu schreiben. Und zwar fehlen noch einige Sicherheitsfunktionen.

In so einer professionellen Kaffeemaschine ;-) muss die Funktionstüchtigkeit der Gesamtanlage dauernd überwacht werden.

Deine Aufgabe ist es zwei mögliche Fehler auszuwerten und anzuzeigen.

  1. Die Maschine muss (bei Gelegenheit) entkalkt werden
    Der Sensor, der eine zu hohe Verkalkung anzeigt, ist an INT0 angeschlossen und gibt als Meldung eine „0“ aus. Wenn der Sensor eine Verkalkung feststellt, soll an Portpin P0.0 eine 1 ausgegeben werden. Hierdurch wird ein Warnsummer eingeschaltet. Da diese Meldung nicht so kritisch ist, kann der Summer ausgeschaltet werden. Er soll nicht automatisch wieder eingeschaltet werden, auch wenn die Kaffeemaschinen noch nicht entkalkt worden ist.
  2. Der Druck der Maschine ist zu hoch. Der Sensor hierfür ist an INT1 angeschlossen und gibt als Meldung eine „0“ aus. Dieser Zustand ist kritisch. In der zugehörigen Interrupt Service Routine soll an Port P0.1 eine 1 ausgegeben werden. Hierdurch wird ein Alarm ausgelöst und die Kaffeemaschine heruntergefahren. Sollte jemand den Alam löschen, der Druck aber immer noch zu hoch sein, soll automatisch die ISR wieder aufgerufen werden.

Es geht also in der Aufgabe sowohl um den Interrupt 0 und den Interrupt 1 und um pegelgesteuerte wie auch um flankengesteuerte Interrupts.

Hinweis zur Programmierung der Internet Service Routine.

Im Video habe ich gezeigt, dass für den Interrupt 0 die Priority Order 0 gilt. Für den Interrupt 1 gilt die Priority Order 2.

Die Interrupt Service Routinen sehen also beispielsweise wie folgt aus:

void ISR_INT0 (void) interrupt 0
{}

void ISR_INT1 (void) interrupt 2
{}

Dieser Artikel ist Teil des Mikrocontrollerkurs auf ET-Tutorials.de.
Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .

Elektrotechnik muss nicht kompliziert sein.
Deshalb gibt es VIDEO-Tutorials.

Hat Dir der Artikel geholfen? - Dann hilf dem Artikel ;-)

Externe Interrupts beim 8051:
1 Star2 Stars3 Stars4 Stars5 Stars
5,00 von 5 Punkten, basieren auf 5 abgegebenen Stimmen.
Stimme jetzt ab ! (auf die Sternchen klicken)
Loading ... Loading ...


Fragen und Antworten zu diesem Artikel und zu anderen Themen findest Du im ET-Tutorials Forum

Ähnliche Artikel

Folgende Artikel aus der gleichen Kategorie könnten Dich ebenfalls interessieren:

Lösung der Aufgabe zu den externen Interrupts Heute geht es nun um die Lösung aus dem Artikel der vergangenen Woche, in dem ich die Mechansmen des...

Software Interrupts, Traps Wie bereits in der Übersicht zu externen Interrupts gezeigt, können Interrupts auch durch Software a...

Timer Interrupt des 8051 Mikrocontrollers Zu den wichtigsten Aufgaben eines Mikrocontrollers gehören Steuerungs-, Regelungs- und Messaufgaben....

Timer Interrupt Lösung der Aufgabe Am Ende der vergangen Folge, in der es um die Programmierung eines Timer Interrupts ging, hatte ich ...

Timer Interrupts 8 bit auto reload In dieser Folge geht es um den Mode 2 des Timer Interrupts, dem 8 bit auto-reload Modus. Im Gegensat...