Programmzähler - Abgezähltes Programm

 

Materialbedarf

 

Anz. Bezeichnung Datenblatt
1 Spannungsversorgung  
1 CMOS-IC 4029
2 4-Bit Dateneingabe  
1 4-Bit Datenausgabe  

 

 

Der Programmzähler

 

Damit der Mikrokontroller ein Programm abarbeiten kann, wird neben dem eigentlichen Programmspeicher noch ein besonderes Register benötigt. Es ist der so genannte Programmzähler, oder kurz PC (Program Counter). Eigentlich ist der PC kein Register im herkömmlichen Sinn. Es ist vielmehr ein Zähler, welche spezielle Eigenschaften besitzt. Für den Anwender sieht es aber später so aus, als handele es sich hier um ein übliches Register.

 

Wir benötigen hier also kein Register, sondern einen Zähler, denn dieser soll nach jedem Einlesen eines Befehlsbytes die Adresse um 1 erhöhen. Da es aber auch Befehle wie Sprünge und Unterprogrammaufrufe gibt, muss der Zähler Programmiereingänge besitzen. Diese Eigenschaften sind im 4029 enthalten. Um hiermit einen Programmzähler zu errichten, wird im Grunde, neben der Ein- und Ausgabe, nichts weiter benötigt.

 

 

Nun kann der Mikrokontroller automatisch die Adressen im Programm hoch zählen. Hierzu muss nur der Eingang B0 aus und wieder eingeschaltet werden. Standardmäßig sollte B0 aktiv sein, da der Zähler auf eine fallende Flanke reagiert.

Wird nun ein Sprungbefehl in irgendeiner Form ausgeführt, so liegt die neue Adresse am Programmierport an, hier simuliert durch das Eingebaboard A, und es wird das Übernahmesignal gegeben. In unserem Fall durch B1. Ab diesem Moment läuft das Programm ab der neuen Adresse weiter.

 

Nun haben wir aber mit einem 4029 nur eine Adressbreite von 4 Bit. Dies bedeutet, wir könnten Programme mit höchstens 16 Befehlen ausführen. Dies ist, selbst für einen Lehrcomputer, reichlich wenig. Der Adressraum sollte mindestens 8 Bit, also 256 Adressen, umfassen. Hiermit lassen sich schon kleine vernünftige Programme gestalten.

Um den Adressbereich zu erweitern, können wir den 4029 kaskadieren. Hierzu wird der Ausgang TC an den nachfolgenden Takteingang gezogen. Es müsste dann noch eine weitere Eingabe für die Programmiereingänge angeschlossen werden. Der PLoad-Eingang kann parallel geschaltet werden.

Es werden bestimmt jetzt einige sagen, dass man dann doch Problemlos auch 16 Bit oder gar mehr Adressraum zur Verfügung stellen könnte. Theoretisch schon. Aber ein breiterer Adressraum bedingt auch umfangreichere Befehlsgrößen im Mikrocode, welches den Mikrokontroller langsamer macht. Dazu aber später, bei der Erstellung des Mikrocodes, mehr.

 

 

Zurück zur Auswahlseite            Zur Hauptseite