zum Directory-modus

PIC-Mikrocontroller

Program Counter

Das auszuführende Programm steht in dem Festwertspeicher, dem EPROM. Welche Instruktion nun als nächstes ausgeführt wird, bestimmt allein der Befehlszähler, der den nächsten auszuführenden Befehl adressiert. Der Wert des PC befindet sich in einem speziellen Register mit der Speicheradresse 02, auf das wie auf jedes Register zugegriffen werden kann. Damit kann man ähnlich wie mit dem GOTO-Befehl im Programm springen. Dies wird auch im Beispiel "Logiktrainer" angewendet.

An den Befehlszähler angeschlossen ist der Zwei-Ebenen-Hardwarestack (bei den PIC16C5X). In diesem Stack können bis zu zwei Adressen zwischengespeichert werden. Diese Adressen werden dort gespeichert, wenn das aktuelle Programm zu einem Unterprogramm verzweigt, und nach einem Rücksprung wieder benutzt, um an die Sprungstelle zurückzufinden. Da der Stack nur zwei Ebenen besitzt, können maximal zwei Subroutinen aufgerufen werden. Bei einem erneuten Sprung wird die zuerst gespeicherte Adresse verworfen.

Der von dem Befehlszähler adressierte Befehl wird dann zunächst in das Befehlsregister geladen, von wo aus dieser anschließend in die eigentliche Auswertelogik gelangt. Diese besteht aus dem Befehlsdecoder, dem WORK-Register (auch W-Register genannt) und der Arithmetisch-Logischen-Einheit (ALU).

Der Befehlsdecoder entscheidet anhand des ihm zugeführten Befehls über die Art und den Ort der Ausführung. Er hat einen direkten Zugriff auf den Befehlszähler, den RAM-Speicher und die ALU. So können Sprünge, Speicherzugriffe und arithmetische sowie logische Operationen von dort aus durchgeführt werden. Für die letzteren werden die Daten direkt dem W-Register übergeben, wo dann die ALU darauf zugreift.

Das W-Register gleicht dem Akkumulator anderer Mikrocontroller und -prozessoren. Über dieses Register werden alle Operationen durchgeführt, die einen Zwischenspeicher für einen Operanden oder das Ergebnis benötigen.

Seite 7 von 10