Einführung in die Programmierung von Mikrocontrollern der 8051-Familie

English

Software  Programmierung  Hardware  Programme  Literatur  Datenblätter und Firmenapplikationen  Links


Einführung:

In der Industrie ist der Mikrocontroller bereits seit vielen Jahren ein nicht mehr wegzudenkendes Bauteil. Er findet seinen Einsatz in der Prozessautomation, der Messtechnik, dem Automobilbau und in der Konsumelektronik. Auch beim Aufbau von wissenschaftlichen Experimenten lässt er sich für viele verschiedene Aufgaben z.B. bei der Datenerfassung oder der Prozessüberwachung nutzbringend einsetzen.
Das Seminar soll eine Einführung in den Einsatz solcher Mikrocontroller vermitteln und die Möglichkeiten seiner Verwendung am Beispiel der weit verbreiteten 8051-Familie aufzeigen. Neben einer theoretischen Einführung in die Problematik gibt es praktische Übungen, in denen unter Verwendung eines PCs und eines µC-Experimentierboards Pascal- und Assembler-Programme erstellt und getestet werden können.
Interessierte Studenten haben außerdem die Möglichkeit sich für wenig Geld ein eigenes Experimentierboard nachzubauen. Die erforderliche Entwicklungssoftware wird kostenlos bereitgestellt.

Seminarunterlagen:

Hardwarebeschreibungen


Entwicklungs-Systeme:

Für die Softwareentwicklung bei Mikrocontrollern benötigt man ein System, das auf einem Fremdcomputer (z.B. PC) eingesetzt wird. In einem Texteditor wird zunächst der Quelltext des erforderlichen Programms geschrieben. Hierbei kann man die typspezifische Assemblersprache oder auch eine der für viele Typen verfügbaren Hochsprachen (meist C, seltener Pascal) benutzen. Anschließend muss der Quelltext mit einem Assembler oder Compiler in die jeweilige Maschinensprache (Binärcode) übersetzt werden. Dieser Code kann dann auf verschiedene Weise auf die Original-Mikrocontroller-Hardware übertragen werden:

Für das Testen von komplexeren Programmen benötigt man zusätzliche Hilfsmittel. Im einfachsten Fall genügt ein Softwaresimulator auf einem Fremdcomputer (z.B. PC). Bei Echtzeitanwendungen benötigt man Hardware-Emulatoren mit vielfältigen Debug-Möglichkeiten.

Für alle gängigen Mikrocontroller gibt es kommerzielle Entwicklungssysteme, die in der Regel auch Hochsprachen und Hardware-Emulatoren unterstützen. Leider sind derartige Systeme sehr teuer. Weitere Informationen findet man z.B. bei Keil-Software oder Engelmann&Schrader.

Kostenlose Software

Im Seminar wird ausschließlich kostenlos verfügbare Entwickler-Software verwendet.

Sonstige Hilfsprogramme:


Windows-Programme für die In-System-Programmierung:


Experimentierplatine mit AT89S85252

Hardware

Experimentierplatine mit Atmel AT89S8253 (oder AT89S51/52) (siehe Bild rechts - vergrößern):
Diese Experimentierplatine liegt jetzt in einer überarbeiteten Version vor. Sie kann durch ansteckbare I2C-Module um zusätzliche Funktionen erweitert werden:

Weiter zur ausführlichen Beschreibung ..


Experimentierplatine mit 80C592 (Philips mit eingebautem CAN-Interface):

Schaltplan Layout Eagle-Dateien
Delphi-Unit zur Ansteuerung des Adapters

CAN-Adapter für die Parallelschnittstelle:

Schaltplan   SMD-Layout   Eagle-Dateien



Bezugsquellen

Bauteile und Komponenten: Bausätze:
Programmiergeräte: Industriell gefertigte Module:

Entwicklung eigener Schaltungen:

Wer sich selbst mit der Entwicklung von Schaltungen beschäftigen möchte, hat mit der Freeware-Version von Eagle 4.1 eine sehr komfortable Möglichkeit, dies zu tun. Sie ist identisch mit der kommerziellen Version, lediglich die Anzahl der Schaltplanseiten (1), die Platinengröße (80x100 mm²) und die Anzahl der Lagen (2) sind beschränkt.



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 in Assembler:

Download als Zip-Datei

  • Programme:
    • einfacher Blinker mit Timerinterrupt
    • Benutzung der seriellen Schnittstelle
    • Interruptgepuffertes Lesen von Daten über die serielle Schnittstelle
    • Konvertierung einer Dezimalzahl (ASCII) in eine Binärzahl
    • Konvertierung einer Binärzahl in eine Dezimalzahl (ASCII)
    • Min-Max-Thermometer mit LCD-Anzeige
  • Verschiedene Unterroutinen als Include-Dateien:
    • Addition und Subtraktion mit 16-Bit-Zahlen
    • Multiplikation und Division mit 16-Bit-Zahlen
    • Quadratwurzel aus einer 16- oder 32-Bit-Zahl
    • Einfacher Zufallszahlengenerator
    • Interruptgepufferte serielle Schnittstelle
    • Ansteuerung einer LCD-Anzeige
    • Routinen für den I2C-Bus
    • Abfrage einer Zehnertastatur

Beispielprogramme in Pascal:

Download als Zip-Datei

  • Programme:
    • einfacher Blinker mit Timerinterrupt
    • Benutzung der seriellen Schnittstelle
    • Test für die Ansteuerung der LCD-Anzeige
    • Test für die Eingabe über eine Zehner-Tastatur
    • einfaches Thermometer
  • Verschiedene Unterroutinen als Units:
    • Benutzung des Timers
    • Interruptgepufferte serielle Schnittstelle
    • Ansteuerung einer LCD-Anzeige
    • Routinen für den I2C-Bus
    • Abfrage einer Zehnertastatur

Literatur:

Folgende Bücher beschäftigen sich mit dem Einsatz und der Programmierung von Mikrocontrollern der Familie MCS-51:


Datenblätter und Firmenapplikationen zur MCS-51-Familie:

Nachfolgend sind einige für das Praktikum interessante Dokumentationen aufgeführt. Unter den Firmen-Links findet man viele weitere Informationen zu den zahlreichen Varianten dieser Microcontroller-Familie.


Links:

Unter den nachfolgenden Adressen findet man weitere nützliche Informationen zu 8051-Mikrocontrollern:


Institut für Experimentelle und Angewandte Physik der Universität Kiel