4     Assembler für die 8051-Controller-Familie

Für die Ausführung eines Programms auf einem µ-Controller der 8051-Familie muss das Programm in einer für den Prozessor ausführbaren Form vorliegen. Diese Form besteht aus einer Kombination von "1" und "0", welche mit dem Zustand "EIN" und "AUS" oder "HIGH" und "LOW" gleichgesetzt werden kann. Als gut handhabbar hat sich die Darstellung in Bytes gleichbedeutend mit 8 Bit herausgestellt. Diese 8 Bit lassen sich als Hexadezimalzahl mit je zwei Nibble darstellen. 

Bild 4.1. Zahlendarstellung

Der Mensch denkt aber nicht oder zumindest selten in Hexadezimalzahlen. Hier prallen also zwei Sprachen aufeinander. Die sprachliche Ausdrucksweise wie "Lade das Register mit dem Namen Akkumulator mit der Zahl 89" fördert das Verständnis für die Aktionen, die  im µ-Controller durchgeführt werden. Würde man eine solche verständliche Ausdrucksweise wählen, ergäben sich sehr umfangreiche und damit unübersichtliche Programme. Deshalb haben die Ingenieure bei Intel einen leicht zu merkenden mnemotechnischen Code erfunden.

"Lade das Register mit dem Namen Akkumulator mit der Zahl 89" heißt verkürzt:   mov A,#89

 

 

Bild 4.2. Befehl für 8051

Mit ein bisschen Übung und der nebenstehenden Erklärung im Bild lässt sich dieser Befehl einfach anwenden und schnell schreiben. Der Prozessor im µ-Controller kann diesen Befehl jedoch noch nicht bearbeiten, da dieser nur eine 1-0-Kombination als Befehl ausführen kann. Folglich muss der erwähnte Befehl in eine 1-0-Kombination übersetzt werden. Bei der 8051-Familie stehen hierfür die beiden Bitkombinationen in der Tabelle:

Tabelle 4.1. Übersetzung des Codes in eine Hexadezimal

Bitkombination

Als Hexadezimalzahl

Mnemotechnischer Code

0111 0100B

74H

mov A,

0101 1001B

59H

  #89

Die erste Bitkombination übersetzt den Befehl mov A. Die zweite Bitkombination - dezimal geschrieben "89" - ergibt in hexadezimaler Darstellung 59H. Genau diese Übersetzungsarbeit - vom mnemotechnischen Code in die hexadezimale Darstellungsart - leistet der Assembler. Andererseits bezeichnet man die einfach zu merkende Kurzschreibweise ebenfalls als Assembler. "To assemble" heißt übersetzt "zusammenfügen". Sie fügen ein Programm in Kurzschreibweise zusammen und übersetzen diese Kurzschreibweise mit Hilfe eines Programms in 1-0-Kombinationen. Sowohl die Kurzschreibweise der Befehle als auch das Programm zum Übersetzen bezeichnet man als Assembler.

Für das Übersetzen können Sie den beiliegenden Intel Evaluation Assembler verwenden. Für die Erstellung von 8051-Software verwenden Sie am besten einen PC mit dem Betriebssystem MS-DOS 5.0 oder höher. Die beiliegende Software HISIM51 erlaubt das Austesten der Programme mit dem Simulator. Falls Sie die Hardware in Form der EURO_535 V2.0 erstanden haben, empfiehlt sich die Ausführung der Programme direkt auf der Hardware.

Die nachfolgenden Ausführungen beziehen sich auf den 8051-Prozessor. Wie bereits erwähnt, gibt es von diesem Prozessor bereits über 100 Derivate. Werden Besonderheiten dieser Derivate programmiert, so wird dies ausdrücklich erwähnt.

Aufgabe

Eine Leuchtdiode soll mit einem Taster eingeschaltet und mit einem anderen Taster ausgeschaltet werden.

Lösung

Für das erste, einfache Programm sind die Portausgänge P1.1, P1.2, P1.3, P3.2, P3.3 und P3.4 der EURO_535 V2.0 wie folgt beschaltet.

Bild 4.3. Beschaltung der Ports

 

 

Sind die DIP-Schalter, aufgrund ihrer Größe auch "Mäuseklavier" genannt, S2.1-S2.6 auf ON geschaltet, werden die Leuchtdioden und Taster mit den entsprechenden Ports verbunden. An Port 1.1, 1.2, 1.3 liegen die Taster 1 bis 3. An Port 3.2, 3.3, 3.4 sind Leuchtdioden angeschlossen. Alle Ports sind zusätzlich auf die VG-Leiste - eine 96-polige Anschlussleiste - geführt. Die gesamte Beschaltung der Ports mit Leuchtdioden und Schalter kann auf der Karte durch die DIP-Switches S2.1 - S2.6 abgeschaltet werden. Hierdurch stehen für Ihre eigenen Entwicklungen alle Ports zur Verfügung.

Der Unterschied zur üblichen Softwareerstellung wird hier sehr deutlich. Eine Softwareerstellung für  µ-Contoller setzt ein intensives Studium der entsprechenden Hardware voraus. Andererseits ist von der Hardware eine entsprechende Dokumentation zu liefern.

 

Tabelle 4.2. Dokumentation der Beschaltung

 

Port

Anschluss

Bemerkung

P1.1

T1

Taster 1

P1.2

T2

Taster 2

P1.3

T3

Taster 3

P3.2

L1

Leuchtdiode 1

P3.3

L2

Leuchtdiode 2

P3.4

L3

Leuchtdiode 3

 

Wenn Sie selbst Hardware und Software für eine Aufgabenstellung entwickeln, sollten Sie eine künstliche Schnittstelle zwischen Hardware und Software mit Hilfe der Dokumentation erzeugen. Sie arbeiten also im einen Fall als Hardwareabteilung und im anderen Fall als Softwareabteilung. 

Die Beschaltung kann für die Softwareabteilung beispielsweise in Form einer Tabelle von der Hardwareabteilung dokumentiert sein.

 

Das Struktogramm oder Ablaufdiagramm ist zu erstellen. Hiermit setzen Sie die formulierte Aufgabenstellung in eine für die Software geeignete Beschreibungsform um.  Dieser Schritt ist besonders wichtig.  Dies entspricht beim Klavier spielen dem Eintrag des Fingersatzes. Einfache Stücke können Sie ohne Fingersatzeintrag spielen, aber spätestens beim Hummelflug von Rimski Korssakow haben Sie Knoten in den Fingern. Bitte nehmen Sie diesen Tipp sehr ernst. Insbesondere wenn Sie größere Softwareprojekte bearbeiten müssen, sollten Sie die Dokumentation der wesentlichen Programmteile und damit die Struktur für andere verständlich machen. Das heißt aber, in einer allgemein anerkannten Form zu dokumentieren. Diese Form ist das Struktogramm.

Falls Sie die Symbole für Programmablaufpläne nicht parat haben, finden Sie diese auf der nächsten Seite.

 

Bild 4.4. Struktogramm für das erste,

einfache Programm EIN_AUS.ASM


 

Symbole für Programm-Ablaufpläne

 

Bild 4.5. Symbole für Programm-Ablaufpläne

Nachfolgend sehen Sie das Programm. Es ist ausführlich dokumentiert. Die Wichtigkeit der Kommentare erkennen Sie leider erst, wenn Sie ein von Ihnen selbst geschriebenes Programm nach einem Jahr hervorholen und Änderungen durchführen sollen. Ersparen Sie sich diese Bloßstellung vor sich selbst !

Die Bemerkung eines Studenten zu dieser Äußerung war:

" Warum ? Es ist doch nicht so schlimm, wenn man im stillen Kämmerlein Selbsterkenntnis übt."