Heute geht es nun um die Treiberschaltung für die Portpins.
Diese Treiberschaltung benötigt man für das Schreiben und für das Lesen aus Ports. In der letzten Folge haben wir ja bereits bemerkt, dass ein Portpin, der zum Lesen externer Signale genutzt werden soll, entsprechend vorbereitet werden muss.
Und zwar müssen wir eine 1 in das entsprechende Portbit schreiben. Diese 1 wird in ein Latch, ein D-Flipflop, gespeichert.
Um Informationen an ein Portpin auszugeben, ist eine einfache Transistorschaltung auf dem Mikrocontroller integriert, mit dessen Hilfe über eine Pullup-Schaltung (manchmal ist auch ein externer Pullup-Widerstand nötig) die Information nach außen geschaltet werden kann. Das ist noch relativ unspektakulär 😉
Das Lesen aus einem Portpin ist etwas kniffeliger.
Wäre der Ausgangstransistor durchgeschaltet, so wäre der Portpin dauernd auf Masse gezogen, unabhängig davon, welcher Pegel physikalisch am Portpin angelegt werden würde. Die gelesene Information wäre immer 0.
Aus diesem Grund muss, wenn man aus einem Portpin gelesen werden soll, das D-Flipflop immer gesetzt werden. Dies erreicht man, indem man eine 1 in den Portpin schreibt.
Die Regel lautet also:
Wenn man aus einem Portpin lesen möchte, muss das Portbit auf 1 gesetzt werden
Jetzt, wo das nun klar ist, gibt es noch eine gute Nachricht 😉
Unsere Portbits sind nämlich bitadressierbar. Das heißt, man muss sich nicht bei der Arbeit mit einzelnen Portpins , wie in der Folge zur Bitweisen Manipulation gezeigt, mit Masken herumschlagen, sondernman kann die Portbits einzeln ansprechen.
Was man tun muss, um die Portbits einzeln anzusprechen, zeige ich ebenfalls im heutigen Video.
Jetzt bist Du wieder an der Reihe
Die Wahl des Getränks für den bereits im ersten Teil des Mikrocontrollerkurses verwendeten Kaffeeautomaten, soll nun über Schalter erfolgen, die an die Portpins P0_0 bis P0_2 angeschlossen sind.
Dem Kunden, der ein Getränk ausgewählt hat, soll die Getränkewahl über Leuchtdioden angezeigt werden, die an den Ports P0_3 bis P0_5 angeschlossen sind.
Das heißt, wenn der Schalter P0_0 geschlossen ist, soll die LED an P0_5 leuchten, usw.
Versuche bitte einmal, diese Funktionalität zu programmieren.
Dieser Artikel ist Teil des Mikrocontrollerkurs auf ET-Tutorials.de.
Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .