Mikrocontroller Thermometer
Als
Facharbeit habe ich in der Schule
das Fach Informatik gewählt. Hier konnte ich ein Hobby-Projekt, das ich
so oder so realisiert hätte, mit der schulischen Anforderung decken. Ein
weiterer positiver Nebeneffekt ist, dass ich von diesem Projekt die bisher umfangreichste
Dokumentation erstellt habe; es ging ja auch kein Weg daran vorbei.
Der vollständige Titel der Arbei lautet:
"Entwicklung und Realisation der Hard- und Software für ein mikrocontrollergesteuertes
Thermometer mit Langzeitmesswertspeicher, alphanumerischem LC-Display, Benutzermenüführung
und Interface zum PC zwecks Auswertung und Weiterverarbeitung der gesammelten
Daten".
Dahinter verbirgt sich im Wesentlichen der Mikrocontroller AT89C4051 der Firma
ATMEL. Dieser ist zum Industrie-Standard
MCS-51 kompatibel und gehört zur Klasse der CISC-Prozessoren.
An ihn angeschlossen ist über Bus-Hardware das LC-Display, die vier Taster,
deren Funktion jeweils situationsabhängig in der unteren Displayzeile angezeigt
werden, 4 kByte EEPROM-Speicher sowie der Temperatur-Fühler. All diese
Dinge waren zum Zeitpunkt des Anfangs der Entwicklung Neuland für mich.
Damit ich mich nicht auch noch mit der Aufbereitung von analogen Messwerten
beschäftigen müsste, wählte ich einen digitalen Temperatur-Sensor,
der die Daten über eine serielle Schnittstelle (kein RS232) zur Verfügung
stellte.
Damit das Ganze so richtig Spaß machte, entschied ich mich zur Assembler-Programmierung. Als Bottom-Up-Ansatz habe ich zuerst die Hardware-Treiber geschrieben, auf die dann ein Menü-System aufsetzte. Am Anfang war die Programmierung in Assembler noch recht langwierig und fehlerträchtig. Mit der Zeit wuchs jedoch die Erfahrung und die Abstraktion von der Hardware-Ebene, so dass sich Fehler rein am PC erkennen und beheben ließen. Als Hilfsmittel beim Hardware-Debugging stand mir zwar ein analoges Oszilloskop zur Verfügung, aber ohne Speicher lassen sich nun mal digitale Datenbursts auf den Signalleitungen nur schlecht überprüfen und nachvollziehen. Ein Damokles-Schwert waren die 4096 Byte Programm-Speicher, die dieser Mikrocontroller als obere Grenze zur Verfügung stellt. Im Laufe der Entwicklung war ich mir sehr unsicher, ob alle von mir erdachten Funktionen sich mit dieser Größe realisieren lassen würden. So schrieb ich eine Mischung aus laufzeit- und speicherplatz-optimiertem Code.
Die Facharbeit kann hier als PDF Dokument angesehen werden. Jede Nutzung, die nicht rein privat und nicht-gewerblich ist, ist streng untersagt! Wer Interesse an den Schaltplänen hat, der schreibe mir einfach eine E-Mail.
|
letztes Update:
21.08.2007 10:05
|