Die Software, welche auf dem Mikrokontroller läuft, ist in C geschrieben und benutzt die GNU AVR Library. Für die Kommunikation mit dem DS1821 ist ein sogenannter "1Wire-Bus" programmiert. Die einzelnen Kommandos zum Starten der Messung und zum Auslesen des Messwertes sind in dem Datenblatt des DS1821 beschrieben.
Der Sourcecode kann mit dem GNU Compiler für den Atmel AVR compilert werden. In dem hier angebotenen Download-File benfinden sich neben den Sourcen auch die Schaltung und der mit dem AVR-GCC 4.3.0 erzeugte Binärcode, welcher direkt auf einen Atmel AT90S8515 geladen werden kann.
Hardware-Konfiguration
In der Header-Datei config.h ist die Konfiguration der Hardware hinterlegt, d.h. dort wird beschrieben über welche Pins des Mikrokontrollers der Temperatur-Sensor und das LCD-Display angeschlossen ist. Diese Datei kann bei Bedarf an andere Hardware angepasst werden.
Programm-Ablauf
Nach der Initialisierung der Hardware wird in einer Endlosschleife jede Sekunde die Temperaturmessung auf dem DS1821 angestossen. Nach Ablauf des Messvorganges wird der Messwert vom DS1821 ausgelesen, in einen Temperaturwert umgerechnet und auf dem LCD-Display angezeigt.
Credits
Von Peter Fleury stammt der Code zum Ansteuern des LCD-Displays, von Peter Dannegger programmierte Funktionen für den 1Wire-Code habe ich als Basis für die in diesem Projekt benutze 1Wire-Implementierung genommen.