Entwicklungsumgebung für Mikrocontroller der 8051-Familie


Einführung  Download  Installation  Monitor-Programme Beispiel-Programme Experimentierplatine


Einführung

Das MC-Tools-Paket enthält eine Entwicklungsumgebung (IDE) für alle Mikrocontroller der 8051-Familie (Siemens, Philips, Atmel, etc.).

Programme

MC-51

Die Compiler ASEMW, Turbo51 und SDCC sind Programme, die über die Befehlszeile gesteuert werden. Zur Übersetzung von Quellprogrammen müssen sie mit den erforderlichen Parametern aufgerufen werden. Dies erledigt die Entwicklungsumgebung MC51 automatisch auf Knopfdruck. Die Ausgabe dieser Programme (insbesondere eventuelle Fehlermeldungen) wird im unteren Teil des Desktop-Fensters eingeblendet. Mit einem Klick auf eine Fehlermeldung wird die Positionsmarke des Editors direkt auf die fehlerhafte Zeile gesetzt.

Da es viele Mikrocontroller in der 8051-Familie gibt, die sich in der Struktur der Special-Function-Register (SFR) unterscheiden, muss am Anfang des Quelltextes das passende Modul per Include-Befehl, bzw. bei Pascal die entsprechende Unit eingebunden werden. Das MC-Tools-Paket enthält Module und Units für alle gängigen Mikrocontroller der 8051-Familie. Beim Anlegen einer neuen Quelltext-Datei fügt die Entwicklungsumgebung automatisch den für den ausgewählten Mikrocontroller benötigten Quellcode in den Text ein (siehe die Auswahlliste oben rechts in der Werkzeugleiste). Entsprechend wird beim Laden eines Quelltextes das dort verwendete Modul automatisch erkannt.

Für die Kommunikation mit einer Mikrocontroller-Experimentierplatine über die serielle Schnittstelle wird in MC-51 ein Terminal-Modus bereit gestellt. Die für die Verbindung erforderlichen Parameter können über das Hauptmenü eingestellt werden.
Die Anzeige ist in zwei Fenster aufgeteilt: Im oberen Teil werden die über die serielle PC-Schnittstelle empfangenen Daten angezeigt, im unteren die von der Tastatur eingegeben zu sendenden Daten. Wenn im Mikrocontroller ein Monitor-Programm, wie z.B. PAULMON, installiert wurde, können außerdem Hex-Dateien, die vom Assembler, dem Pascal-Compiler oder dem C-Compiler erzeugt wurden, in den Mikrocontroller-Speicher herunter geladen werden.

Mit dem Simulator / Debugger können kleine Programm ohne externe Hardware getestet werden. Es stehen alle üblichen Debug-Funktionen (Start, Stopp, Einzelschritt, Schritt über Unterroutinen, Lauf bis zu einer ausgewählten Zeile) zur Verfügung. An jeder Stelle können außerdem Haltepunkte gesetzt werden, und das zu testende Programm kann auch Schritt-für-Schritt ausgeführt werden.
Der Simulator zeigt sowohl den Quellcode mit den Adressmarken als auch die Adressen und den kompilierten Code im Hex-Format an. Alle Register und Speicherzellen können eingesehen und, falls erforderlich, verändert werden. Zahlen werden wahlweise im Hex-, Dezimal- oder Binärformat angezeigt.
Die Port-Anschlüsse (P0,P1,..) werden als SFRs und als Schaltflächen mit einer LED-artigen Statusanzeige angezeigt. Zum Ändern eines dieser Port-Bits genügt ein Klick auf die zugehörige Schaltfläche (nur möglich, wenn sie im zu testenden Programm zuvor als Eingang definiert wurden).
Außerdem werden zwei Timer und eine serielle Schnittstelle (die Ausgabe wird als Text angezeigt, die Eingabe erfolgt über die Tastatur) simuliert. Eine Interruptsteuerung für diese Komponenten ist ebenfalls vorhanden. Die beiden externen Interrupts können über Mausklicks auf die zugeordneten Schaltflächen ausgelöst werden. Nicht unterstützt wird die Prioritätssteuerung der Interrupts. Außerdem ist es möglich, die Symbol- und Befehlstabellen für die verschiedenen Abarten auch direkt zu laden.

Daneben enthält MC-51 ein Modul für die Flash-Programmierung von einigen Atmel-Mikrocontrollern (AT89S51/52 and AT89S8252/8253) über die serielle Schnittstelle. Wie die serielle Schnittstelle mit dem Mikrocontroller verbunden werden muss, kann der Beschreibung der Experimentier-Platine entnommen werden.

Der integrierte Text-Editor verwendet Komponenten des Open-Source-Projekts SynEdit. Neben den üblichen Funktionen eines Editors enthält er eine compilerabhängige Syntax-Hervorhebung des Quelltextes. Viele Einstellungen können individuell angepasst werden.
 

Projektverwaltung

Für eine effiziente Softwareentwicklung ist es vorteilhaft, häufig verwendete Programmteile in getrennten Module (Include-Dateien beim Assembler und C, Units bei Pascal) unterzubringen. MC-51 kann alle zu einem Projekt gehörenden Programmteile (Hauptprogramm und Module) und die erforderlichen Compiler-Optionen in eine Datei speichern (siehe unten). Wird ein derart gespeichertes Projekt geöffnet, werden alle zugehörigen Quelltexte und Einstellungen in die Entwicklungsumgebung geladen.

Download

Sprachen: Englisch und Deutsch (weitere Übersetzungen möglich)
Betriebssystem: Windows XP, Vista, 7,8 and 10

Download: Vers. 5.9.3 (4,37 MB) vom 17.5.2019 (Update-Information):

MC-Tools-Installationspaket mit Turbo-51 und ASEM-51

Download: Vers. 6.0.1 (4,49 MB) vom 27.5.2019 mit optionaler Einbindung von SDCC (Update-Information):

MC-Tools-Installationspaket mit Turbo-51 und ASEM-51

Die Installationspakete enthalten die oben beschriebenen Programme, die Standardeinstellungen für den Editor, den Pascal-Compiler Turbo-51 (Vers. 0.1.3.17), den Assembler ASEM-51 von W.W. Heinz, sowie Include-Module und Units für viele Mikrocontroller der 8051-Familie.

Der C-Compiler SDCC muss getrennt heruntergeladen und installiert werden. Beim Start prüft MC51, ob SDCC auf dem System installiert ist, und integriert es automatisch in das Entwicklungssystem.
 

Installation des Programms

MC-Tools wird als ausführbares Windows-Setup (mc-setup-5.x.yy.exe, wobei x.yy die verfügbare Version bezeichnen) bereit gestellt. Das Programm kann in ein beliebiges Verzeichnis installiert werden (Standard: C:\Program Files\Mc-Tools auf 32-Bit-Systemen, bzw. C:\Program Files(x86)\Mc-Tools auf 64-Bit-Systemen). Dabei sind die Rechte eines Administrators erforderlich. Auf Wunsch können im Windows-Startmenü und auf dem Desktop Verknüpfungen angelegt werden.

Im Installationsverzeichnis wird die nachfolgende Verzeichnis- und Dateistruktur erstellt:

   <Install directory>
     mc51.exe                Programm
     mc51.ini                Standardeinstellungen für das Programm
     mc51.key                Tastaturbelegung für den eingebauten Editor
     mc51-asm.hlt            Einstellungen für di Syntax-Hervorhebung (Assembler))
     mc51-pas.hlt            Einstellungen für di Syntax-Hervorhebung (Pascal))
     mc51-cco.hlt            Einstellungen für die Syntax-Hervorhebung (C-Compiler))
     opcodes.mco             Liste der 8051-Befehle für den Simulator
     8051.mcu                Liste der vordefinierten Symbol für den Simulator 
     mcprojects.exe          Projektmanager
     checkisp.exe            Programm zur Prüfung von Atmel-Mikrocontrollern 
                             und zum Auslesen des Programmspeichers über ISP
     diffisp.exe             Programm zur Überprüfung von Programmierungen über ISP
     <locale>                Sprachdateien für MC-Tools (z.Zt.: Deutsch)
     <Asem-51>               Verzeichnis für Assembler
       AsemW.exe             Assembler für die Verwendung unter Windows
       ...                   Einige andere Programme und die Dokumentation
       <Mcu>                 Verzeichnis für die Include-Module (s.o.)
         *.mcu               Include-Module für die verschiedenen Mikrocontroller
     <Turbo-51>              Verzeichnis für Pascal
       <bin>                 Pascal-Compiler
       <rtl>                 Laufzeit-Bibliotheken 
       <manual>              Dokumentation
     <Units>                 Verzeichnis für die System-Units
         Sys_*.pas           Units für die verschiedenen Mikrocontroller

Beim ersten Start von MC-51 (MC51.EXE) werden alle erforderlichen Einstellungen (Ort des Assembles, des Pascal- und C-Compilers, etc.) vom Programm automatisch vorgenommen.

Wenn eine Experimentierplatine an den Computer angeschlossen ist, muss vor der ersten Aktion der richtige Anschluss für die serielle Schnittstelle ausgewählt werden:

Hauptmenü ⇒ Einstellungen ⇒ Terminal ⇒ Com-Port ⇒ COM1, COM2, ..

Je nachdem, welches Monitorprogramm verwendet wird, sind einige weitere Einstellungen erforderlich:

Hauptmenü ⇒ Einstellungen ⇒ Terminal ⇒ Baudrate ⇒ 1200, .. ,115200
Hauptmenü ⇒ Einstellungen ⇒ Terminal ⇒ Verzögerung ⇒
Pause zwischen Zeichen in ms
Pause am Zeilende in ms

Beim Einsatz von PAULMON als Monitorprogramm, können alle Einstellungen auf den Standardwerten belassen werden (9600 baud, 0 ms and 50 ms). Es muss nur nach dem Einschalten oder einem Reset auf der Experimentierplatine einmal die Enter-Taste gedrückt werden, damit der Mikrocontroller seine Baudrate anpassen kann.
 

Befehlszeilen-Optionen für MC-51

Wenn man das Programm über eine Desktop-Verknüpfung oder von einem anderen Programm startet, kann es durch die folgenden Befehlszeilen-Optionen gesteuert werden:

ohne
Das MC-51-Programm lädt automatsich alle Dateien, die in der letzten Sitzung geöffnet waren.
<Source1> [<Source2>] ..
Das MC-51-Programm lädt nur die angegebenen Quelltext-Dateien.
/term[:<Filename>.hex]
Das Programm wird im Terminal-Modus gestartet und bereitet den Download der optional angegebenen Hex-Datei vor.
/sim[:<Filename>.omf|hex]
Wenn kein Dateiname angegeben wurde, lädt das MC-51-Programm alle zuletzt benutzten Queltext-Dateien in den Editor und startet dann den Simulator mit dem Programm, das zuletzt bearbeitet wurde.
Wenn eine Omf- oder Hex-Datei angegeben wird, werden zunächst alle zuletzt benutzten Queltext-Dateien in den Editor geladen, dann startet der Simulator und lädt die angegebene Binärdatei.
/ini:<Filename>
Alle benutzereinstellungen werden in der Datei Mc51.ini gespeichert. Sie befindet sich standardmäßig im Anwendungsdaten-Verzeichnis des Benutzers: Mit der "ini"-Option kann der Benutzer die Konfiguration an einer beliebigen anderen Stelle ablegen (z.B. E:\Meine Konfiguration\mc-1.ini).
/project:<project name>
Bezeichnet den Namenb des Projekts, so wie es im Projektmanager angezeigt wird.
/main:<main file>
Bezeichnet die Hauptdatei des Projekts
/options:<options>
Bezeichnet die Optionen für den Turbo51.Compiler
/coptions:<options>
Bezeichnet die Optionen für den C-Compiler
/memalloc:CodeStart;CodeSize;ExtStart;ExtSize
Bezeichnet die Speicherbelegung (Code- und erweiteret Speicher) als Hex- oder Dezimalzahl (nur für C-Programme erforderlich).
Beispiel: /memalloc:$8000;$01000;$9000;$01000
@<ProjectFile>]
Die Befehlszeilenoptionen werden von einer Projekt-Datei mit folgender Struktur geladen:
    ; comment
    /project:<project name>   ; Name des Projekts
    /compiler:1                     ; Pascal
    /main:<mainfile>          ; Hauptdatei des Projekts
    /options:-A -J -T
    <source1>                 ; Weitere Quelltext des Projekts
    <source2>
    ..

Monitorprogramme:

Mit diesen Programmen können über die serielle Schnittstelle von einem PC mit Terminalprogramm z.B. MC-51 Speicherbereiche ausgelesen und verändert werden. Außerdem lassen sich Dateien im Intel-Hex-Format in das RAM eines Entwicklungsboards (siehe Hardware) laden.


Beispielprogramme:

Assembler:

Als Zip-Datei herunterladen

Pascal:

Als Zip-Datei herunterladen
  • Programme:
    • Einfacher Blinker mit dem Timer-Interrupt
    • Verwendung der seriellen Schnittstelle
    • Interrupt-gepuffertes Lesen von der seriellen Schnittstelle
    • Dezimalzahl (ASCII) in Binärzahl konvertieren
    • Binärzahl in Dezimalzahl (ASCII) konvertieren
    • Minimum/Maximum-Thermometer mit der LC-Anzeige
  • Programme:
    • Einfacher Blinker mit dem Timer-Interrupt
    • Verwendung der seriellen Schnittstelle
    • Test für die Ausgabe an eine LC-Anzeige
    • Test für die Eingabe von einer Zehnertastatur
    • Einfaches Thermometer
  • Verschiedene Unterroutinen als Include-Dateien:
    • 16-Bit-Addition und -Subtraktion
    • 16-Bit-Multiplikation und -Division
    • Quadratwurzel von 16- und 32-Bit-Zahlen
    • Einfacher Zufallszahlengenerator
    • Interrupt-gepufferte serielle Schnittstelle
    • Steuerung einer LC-Anzeige
    • Routinen für den I2C-Bus
    • Eingabe von einer Zehnertastatur
  • Verschiede Unterroutinen als Units:
    • Verwendung der Timer
    • Interrupt-gepufferte serielle Schnittstelle
    • Steuerung einer LC-Anzeige
    • Routinen für den I2C-Bus
    • Eingabe von einer Zehnertastatur

Experimentierplatine für Atmel AT89S8252/53 und AT89S51/52

Für ein Seminar, das regelmäßig an der Universität Kiel für Studierende der Physik abgehalten wird, habe ich ein Experimentiersystem entwickelt, das leicht nachzubauen ist. Es besteht aus einer Mikrocontroller-Platine mit verschiedenen Anschlussmöglichkeiten für externe Komponenten:

Weitere Informationen: