Elektronik :: UTC-Uhr - in Bascom programmiert

Elektronik :: Es muß nicht immer Assembler sein: Mikrocontroller programmieren in BASIC

Wir bauen eine UTC-Uhr

UTC-Uhr mit Prozessor und Real Time Clock

Anwendung:


Es muß nicht immer Assembler sein:

Mikrocontroller programmieren in Bascom 8051-BASIC

Kaum ein anspruchsvolles Amateurfunk-Bastelprojekt kommt gänzlich ohne Mikrocontroller aus. Sei es der kleiner Morsepiepser mit Speicherfunktion oder das RTTY- und Faxmodem, gar nicht zu reden von den vielen Geräten für Packet Radio. Simpel betrachtet, ist ein Mikrocontroller nichts anderes als ein Stück Silizium, das der Entwickler nach seinem Gutdünken in der Funktion formen und bestimmen kann. Das die Programmierung eines Mikrocontrollers nicht schwer sein muß und schon gar keine Geheimkunst, die nur wenigen Eingeweihten zugänglich ist, soll dieser Beitrag zeigen. Wie oft, ist alles eine Frage des richtigen Werkzeugs.

Controller als Ersatz für viele TTL-Bausteine

Betrachtet man Bauanleitungen der siebziger Jahre, beispielsweise einen Frequenzzähler, besticht dieser durch eine stattliche Anzahl von integrierten Bausteinen. Meist handelt es sich um TTL- oder CMOS-ICs. Vergleicht man den Schaltplan mit heutigen Zählern ähnlicher Couleur, so fällt in den aktuellen Schaltplänen die geringe Anzahl integrierter Bausteine auf. Eine hohe Funktionsdichte mit wenigen ICïs bietet mehr Leistung, ein hoher Bedienungskomfort wird durch Mikrocontroller erreicht. Auch im 2m-Handfunkgerät oder dem Duo- oder Tribander werkelt ein Mikrocontroller (oder kurz: Controller) fröhlich vor sich hin. Dieser achtet darauf, ob der OM eine der zahlreichen Tasten des Bedienpanels betätigt oder am VFO-Knopf dreht. Auch das Display und weitere Funktionen unterliegen meist seiner Kontrolle, das erklärt, weshalb das Ding also 'Controller' heißt.

8051 - eine Familienbande

Die Firma Intel ist ja hinlänglich bekannt durch seine Mikroprozessoren für PCs, die uns hier nicht weiter kümmern sollen. Aber Intel stellte schon früh , das heiát Ende der siebziger Jahre, die ersten Mikrocontroller her. Zum Unterschied: Mikrocontroller enthalten neben dem Prozessor auch Speicher, Zeitgeber und andere Peripherie, Mikroprozessoren jedoch nicht. Als ein gelungener Wurf stellte sich der 8051 heraus, heutiger Stammvater einer inzwischen sehr weitreichenden Verwandschaft, die sich bester Lebenserwartung erfreut. Diese 8-Bit-Controller sind leicht zu programmieren und durch ihre interne Struktur zukunftsicher. Im Klartext: Spätere Erweiterungen des Leistungsumfangs sind nicht ausgeschlossen! Kein Wunder, daß die 8051-Familie die langen Jahre nicht nur überdauert, sondern erfolgreich gemeistert hat. In vielen Millionen Waschmaschinen, Industriesteuerungen, Anrufbeantwortern, Faxgeräten, CD-ROM-Laufwerken und einer wahren Flut anderer Gerätschaften sind sie zu finden. Inzwischen sind die Controller der 8051-Familie sehr viel schneller geworden und haben, auch was den Leistungsumfang betrifft, kräftig zugelegt. Ein weiteres kommt hinzu: Die Dinger sind spottbillig zu haben, einige Spezies belasten den Geldbeutel deutlich weniger als eine Schachtel Zigaretten.
Was hält den bastelfreudigen Funkamateur also ab, das erste Controller-Projekt in Angriff zu nehmen? Oh, ja, da ist noch die ach so lästige Assemblersprache. Manchen schaudert es, sich um jedes Bit und Byte persönlich zu kümmern, Register zu setzen und Speicherstellen auf ihren Inhalt abzufragen. Das muß nicht sein, schlieálich gibt es geeignete Werkzeuge. Sie klopfen doch auch nicht den Nagel mit einem Kieselstein in die Wand - oder?

BASIC - Für Anfänger empfohlen

Eines dieser geeigneten Werkzeuge heißt Bascom 8051 und ist ein preisgünstiger BASIC-Compiler, der unter Windows 95/98/2000 bis XP/Vista auf einem PC läuft. Das kann auch ein älteres Pentium-Modell sein, anspruchsvoll ist Bascom 8051 also nicht. Da unser Werkzeug über einen Simulator verfügt, können wir das erste Programm munter auf dem PC entwerfen und testen, noch bevor ein Controller in unseren Händen ist.
Das hört sich gut an - oder? Doch mancher Skeptiker könnte auf die Idee kommen, ich wärme kalten Kaffee auf, denn schließlich ist BASIC schon seit den 60er Jahren bekannt. Das ist richtig, doch trifft der Einwand für die hier vorgestellten Produkte nicht zu: Ebenso wie die Controller haben auch die Programmiersprachen eine stürmische Entwicklung erfahren. Da macht BASIC keine Ausnahme. Gerade in jüngster Zeit erfreut sich ein BASIC-Dialekt unter Windows in der PC-Programmierung großer Beliebtheit. Zudem ist Bascom 8051 nicht irgendein BASIC-Dialekt, sondern ein spezielles BASIC, das auf die besonderen Merkmale unserer Controller und auf die Umgebung hin optimiert ist, in der sie eingesetzt werden.
Damit sind wir an einem Punkt angelangt, aus der Vielzahl der zur Verfügung stehenden Controller der 8051-Familie genau den zu wählen, der unseren Funk(tions)-Bedürfnissen am besten gerecht wird. Auf Controller mit 132 Pins und SMD-Bauweise sollten wir besser verzichten, ein Blick auf die grobe Spitze des Lötkolbens besagt alles! Auch Käfer mit 64 oder 48 Pins kehren wir den Rücken, aber 20 Pin im DIL-Gehäuse, also so groß wie ein übliches IC, das wäre etwas. Und wenn das Ding nun auch noch 2 oder 4 KByte Speicher hat, eine serielle Schnittstelle sein Eigen nennt und vielleicht einen Zeitgeber und anderes 'Zeugs', dann wäre etwas damit anzufangen. Sie ahnen es schon, das 'Ding' gibt es, ist inzwischen bekannt wie ein bunter Hund und kommt aus Amerika. Genauer gesagt ist ATMEL der Hersteller und der Baustein nennt sich je nach Speicherausbau AT89C1051, AT89C2051 oder AT89C4051 mit 1k, 2k oder 4k Flash-RAM. Der AT89C2051 ist der Controller, der weit billiger ist als die genannte Schachtel Zigaretten und viel gesünder dazu.

Controller allein sind einsam

Nagel und Hammer, pardon: Controller und BASIC-Compiler sind beisammen, nun kann es losgehen. Könnte es, falls sich nicht eine andere Frage aufdrängt: Ein einsamer Controller auf einer Platine, und sei dieser mit dem schönsten Programm ausgestattet, ist nichts wert. Es fehlt die Möglichkeit zur Ein- und Ausgabe von Information. Der PC besitzt Tastatur, Maus und Monitor, was hat der Controller? Nun, zur Eingabe können ein paar Taster oder ein PC (via serieller Schnittstelle) dienen. Zur Ausgabe spendieren wir eines der praktischen LC-Displays und besitzen damit einen kleinen 'Bildschirm'. Der Controller kann nun Befehle entgegennehmen und über das LCD mitteilen, was er gerade macht oder Resultate seiner Bemühungen kundtun. Weitere Pins des Controllers, die I/O-Ports, können dazu dienen, Relais ein- bzw. auszuschalten oder analoge Spannungen zu messen. Der Fachmann mag nun einwerfen: "Ok, aber die Abfrage von Tasten, der seriellen Schnittstelle oder die Ausgabe auf LCD müssen aufwendig programmiert werden!" Das stimmt und stimmt nicht, denn glücklicherweise ist Bascom nicht nur ein Basic-Compiler speziell für unsere Controller, sondern auch für das typische Drumherm! Das bedeutet: Es gibt spezielle Befehle, die eine Ein- oder Ausgabe zur seriellen Schnittstelle regeln und einen Befehl, der es ermöglicht, sehr einfach auf dem LCD etwas darzustellen.

Startschuß

Der Startschuß ist gefallen, eine Ausrede, sich nicht dem Rausch der Controller anzuschließen, sei hiermit verwehrt! Der erste Schritt besteht darin, den BASIC-Compiler zu ordern oder zunächst eine Demo-Version von der Internet-Adresse des Distributors http://www.mcselec.com zu laden. Die Demo entspricht der Vollversion, ist jedoch in der Größe des Kompilates auf zwei KByte Code beschränkt, genug für ausgiebige Experimante. So ist Schnuppern angesagt, denn für die ersten Tests reicht die Demo allemal, für 'richtige' Programme (bis zu 64K!) hilft nur die Vollversion. Auch die ist bezahlbar, für die gebotene Leistung sogar günstig!
Nach kurzer Installation und dem Start von Bascom 8051 zeigt sich die praktische Benutzeroberfläche. Alle wichtigen Funktionen wie Editieren, Kompilieren oder der Simulator sind via Symbolleiste zugänglich. Der integrierte Multifile-Editor erlaubt das zeitgleiche Schreiben eines oder mehrerer Basic-Programme.
Hups, Sie lesen ja noch immer: Wer weiterlesen möchte, soll doch die komplette Datei laden und offline lesen:

Download von Dateien zu diesem Projekt

Und hier geht es zum Download.


Platinen und Bausätze

Für dieses Projekt biete ich einen Bauteileservice an.


Zurück zu den Tipps

Copyright Michael Wöste