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.
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
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
|
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.
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.
|
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."