8051 Softwaretools

Für die 8051-Familie gibt es eine Vielzahl von Entwicklungstools und Programmiersprachen. Leider sind viele der professionellen Tools, wie z.B. C-Compiler ziemlich teuer. Allerdings gibt es auch eine Menge Freeware-, Shareware und Low-Cost-Software mit der man sehr gut arbeiten kann.

Mit welcher Programmiersprache der Controller programmiert wird ist prinzipiell egal, denn im Gegensatz zur Programmierung für z.B. Windows muss man sich immer direkt mit der Hardware auseinandersetzen. Dabei bieten Hochsprachen, wie C oder Pascal, einen höheren Komfort und eine bessere Lesbarkeit des Sourcecodes. Dafür ist die Geschwindigkeit des erzeugten Programmcodes geringer als von Hand optimierter Assemblercode. Die Geschwindigkeit des erzeugten Codes ist allerdings auch sehr von dem verwendeten Entwicklungssystem abhängig.

Um die Konfiguration der einzelnen Hardware-Komponenten des SAB80C535 zu vereinfachen hat die Firma Infineon ein kostenloses Tool mit dem Namen “DAvE” angeboten. Mit diesem Tools können viele Siemens/Infineon Mikrocontroller einfach am Bildschirm konfiguriert werden. Aus den Konfigurationsdaten wird dann ein Programmgerüst in C erstellt, das dann bereits alle Funktionen zur Initialisierung und Benutzung der Controller internen Hardware enthält. Dieses Tool eignet sich übrigens nicht nur für C-Programmierer, sondern erleichtert auch bei der Assemblerprogrammierung die richtige Initialisierung der Hardware.

Um den SAB80C535 in Assembler zu programmieren ist der AS-Crossassembler sehr gut geeignet. Dieser Assembler ist als Freeware auf diversen FTP-Servern zu finden. Bei diesem Controller handelt es sich um einen Macro-Assembler, der nicht nur die 8051-Familie unterstützt. Mit diesem Assembler kann man vom PIC bis zum 68000´er eigentlich alles programmieren ohne den Assembler zu wechseln und sich an eine neue Syntax zu gewöhnen.

Wem die Assembler-Programmierung zu kompliziert ist und lieber in einer Hochsprache arbeitet, für den konnte ich den C-Compiler von Dave Dunfield empfehlen. Der Compiler war relativ günstig (um die 100$ ) , flexibel und erzeugt relativ kleinen und schnellen Code. Allerdings unterstützt der Compiler nicht den vollen ANSI-Standard. Z.B. wurden die Datentypen Long/ Double / Float /Enum nicht unterstützt und auch Structs sind nicht vollständig implementiert. Außerdem war die mitgelieferte IDE vom Bedienungskomfort nicht mehr zeitgemäß, sie arbeitet unter DOS und ist nur mit der Tastatur zu bedienen.

Die C-Libs werden als Source-Code mitgeliefert, so das man jederzeit die C-Funktionen erweitern oder auch für andere 8051-kompatibelen Mikrocontroller anpassen kann. Die mitgelieferte Library unterstützt einen “normalen” 8051-Controller. Die SFR’s um die speziellen Funktionen von anderen 8051-kompatibelen Controllern benutzten zu können muss man selbst in die Library einarbeiten. Mehr Informationen zu dem C-Compiler findet man auf der Web-Page von Dunfield Development Systems.

Ein anderer kostengünstiger C-Compiler für die 8051-Familie war der µC/51 von der Firma Wickenhäuser. Dieser Compiler kostete in der Vollversion 116,-€. Außerdem gabt es eine auf 8kB limitierte Demoversion, die man auf der Website downloaden konnte. Mit der Demoversion dieses Compilers habe ich ein bisschen gespielt und er funktioniert soweit ganz gut. Die mitgelieferte IDE besteht aus zwei Teilen. Einem Editor für die Sourcen und einem Build-Programm, das über eine Make-Datei gesteuert wird. Inzwischen ist der Compiler wohl nicht mehr erhältlich.

Dafür gibt es inzwischen auch einen Freeware C-Compiler für die 8051-Familie, mit dem ich allerdings noch nicht gearbeitet habe. Wie gut der SDCC-Compiler ist, weiß ich nicht.

Ein günstiger Pascal-Compiler war der Pascal-Cross-Compiler (Nili-Pascal) aus dem Elektor-Verlag (ISBN 3-89576-061-7). Der Compiler war als eine Art “Bookware” zum Preis von 74,50 Euro erhältlich. Teilweise bekommt man das Buch noch als Gebrauchtkauf. Der Compiler besteht eigentlich aus einer kompletten Entwicklungsumgebung mit Editor, Compiler und Terminalprogramm zum direkten Downloaden des erzeugten Codes. (In der ersten Auflage, die ich besitze, sind dieses alles DOS-Programme. Ich weiss nicht, ob sich das inzwischen geändert hat.) Außerdem wird ein fertiger Bootstraploader mitgeliefert, den man prinzipiell nur noch auf ein EPROM brennen muss. Es ist übrigens auch eine Bauanleitung in dem Buch für ein 80C535-Board.

Um das erzeugte Programm später dann auf dem Mikrocontrollerboard laufen zu lassen gibt es zwei Möglichkeiten: Entweder programmiert man mit dem Programm einen EPROM oder man lädt das Programm einfach über die serielle Schnittstelle in das RAM des Mikrocontrollerboards. Wie man sich sicher vorstellen kann, ist die zweite Methode während der Entwicklungsphase etwas bequemer. Deshalb habe ich ein Monitorprogramm, das ich irgendwo im Internet gefunden habe, für den SAB80C535 und die Adressierung des Boards modifiziert. Das Monitorprogramm ist in der Lage HEX-Files in den Mikrocontroller zu laden, den Inhalt von Speicherzellen anzuzeigen usw… Allerdings unterstützt der Monitor nur die Übertragung der Daten über den RS-232 Schnittstellenbaustein. Für die Übertragung der Daten über den RS-485 Baustein müsste man das Übertragungsprotokoll für den Halbduplex-Betrieb erweitern. Diese Arbeit habe ich mir gespart, weil die meisten PC’s sowieso keinen RS485-Anschuss besitzen. Das Monitorprogramm kann hier als ZIP-Archiv gezogen werden.

Für Assemblerprogrammierer befindet sich noch noch ein Beispielprogramm zur Initialisierung und Ansteuerung des LC-Displays als Source-Code auf der Seite der RS232-Version. Das Programm kann auf dem AS-Crossassembler assembliert werden.

Wer noch fragen hat, wem noch Fehler aufgefallen sind oder ein paar Ideen hat kann ja mal eine Mail an mich schicken.