3.3. Grundprinzip der Tastatur-/Display-Ansteuerung sowie Funkdatenübertragung (Anwendung Application-Board)
Ein sehr viel komplexeres Beispiel stellt die nachfolgende Demonstration des Anschlusses der Standard-Folientastatur sowie des LCD-Displays an das Applicationboard dar. Die wesentlichen Prinzipien der programmtechnischen Ansteuerung sind z.B. in [4:61f, 66ff] dargestellt.
In dem nachfolgenden Listing sind demgegenüber einige Modifikationen vorgenommen worden, die sich aus der konkreten Spezifikation des von uns verwendeten LCD-Moduls ergeben (Conrad-Bestellnr. 183342, ein Modul mit zwei Zeilen mit je 16 darstellbaren Zeichen). Über die technische Kundenbetreuung können bei Conrad Electronic per e-mail kostenlos die Datenblätter und Beschreibungen mit allen notwendigen Informationen angefordert werden. Auf Einzelheiten wie z.B. die konkrete Daten- und Kommandomodussteuerung des LCD-Displays oder das Prinzip der AD-Wandlung der Tastatur über eine am Analogport angeschlossene Widerstandsdekade wollen wir hier nicht eingehen. Dazu sei auf die angegebene Literatur verwiesen.
Hier zunächst der vollständige Quelltext des Programmes.
Sinnvoll eingesetzt wird das Programm für
die Kommunikation zwischen zwei C-Control-Applicationboards. Der
Datenaustausch erfolgt über die seriellen Anschlüsse der Boards und kann
sowohl drahtgebunden als auch mit angeschlossenen Sender- und Empfangsmodulen
per Funk erfolgen. Die Abbildungen am Beginn der nächsten Seite zeigen die
beiden entsprechenden kompletten Versuchsaufbauten.

Der genauer Anschluß der Tastatur und des Displays sowie des Senders und Empfängers wird in den nächsten Abbildungen dargestellt:


Wie schon im Kommentar des Quelltextes vermerkt, werden in der ersten Displayzeile die selbst geschriebenen und in der zweiten die empfangenen Zeichen dargestellt.
Die Beschränkung der darstellbaren Zeichen auf die Grundziffern begrenzt natürlich die praktischen Anwendungsmöglichkeiten dieser Schaltung. In der angegebenen Literatur sind jedoch Matrixschaltungen beschrieben, die es erlauben, mit den zur Verfügung stehenden Ports bis zu 64 Tasten abzufragen. Dabei sind diese Schaltungen so einfach, daß ihre Funktionsweise auch von Schülern unterer Klassen verstanden und sie entsprechend nachgebaut werden können. Unsere mit den Standardkomponenten aufgebaute Version kann in diesem Zusammenhang sinnvoll als motivierende Einführung dienen. Eine eher für ältere Schüler geeignete Erweiterungsvariante besteht in der Realisierung eines I2C-Busses. Auch hierfür gibt es sehr detaillierte und für Schüler geeignete Literatur ([5], [9]).
3.4. Grundprinzip des Empfangs des DCF-Funksignals
Als letzte Standardanwendung soll gezeigt werden, wie das von der DCF77-Funkantenne empfangene Zeitsignal in eigenen Programmen genutzt werden kann.

Der Anschluß an das Applicationboard erfolgt ganz einfach so, wie es die obige Abbildung zeigt. Bei korrekter Ausrichtung der Antenne synchronisiert sich sich die interne Systemuhr, die ansonsten relativ ungenau ist, automatisch mit dem empfangenen Zeitsignal. Die Synchronisationsphase wird durch ein regelmäßiges Blinken der grünen LED im Sekundentakt angezeigt. War der Vorgang erfolgreich, d.h. ist die Systemuhr abgeglichen, dann leuchtet diese LED dauerhaft. Unregelmäßiges Blinken deutet auf Empfangsstörungen hin, so daß die Antenne anders ausgerichtet oder eventuelle Störquellen (z.B. Computermoni-tor) entfernt werden müssen.
Das nachfolgende Programm fragt ganz einfach die den Stand der internen Systemuhr anzeigenden Konstanten ab und gibt sie mit dem print-Befehl über die serielle Schnittstelle aus. Der Empfang erfolgt im einfachsten Fall mit einem auf einem normalen PC laufenden Terminalprogramm. Dabei kann die Verbindung zur C-Control wieder über Funk oder drahtgebunden erfolgen. Im letzteren Fall muß an der Schnittstelle des PC der in 2.6. beschriebene RS232-Schnittstellenadapter verwendet werden. Solange keine Synchronisation erfolgt ist (dies kann nach Anschließen der Antenne 2-3 Minuten dauern), beginnt die Systemuhr mit dem 1.1.1997.
'Ausgabe Uhrzeit an Terminal
'Synchronisation durch Einlesen des mit DCF77-Antenne
'empfangenen Zeitsignals
define Sekunde byte
#loop1
if hour <10 then print
"0"; : print hour; ":";
if minute<10 then print "0"; : print minute; ":";
if second<10 then print "0"; : print second,
if day <10 then
print "0"; : print day; ".";
if month <10 then print "0"; : print month; ".";
if year <10 then print
"0"; : print year
#loop2
if Sekunde=second then loop2
Sekunde = second
goto
loop1