Mikrocontroller Thermometer

AnzeigeAls 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.

Die Facharbeit als GanzesPlatine

 

 

 

 

 

 

 

 


Valid XHTML 1.0!
letztes Update: 21.08.2007 10:05
Get Firefox!