Forum: Mikrocontroller und Digitale Elektronik DS18S20 Temperatur-Sensor


von Felix (Gast)


Lesenswert?

Hallo an Alle

Hat irgendjemand von euch ein assembler-programm mit dem ich einen 
ds18s20 oder ds1820 ansprechen und dessen temperatur-werte auslesen 
kann? Vielen Dank im Voraus
MfG Felix

von Matthias (Gast)


Lesenswert?

Hallo,

gibt es große Unterschiede zwischen dem LM75 und der DS Serie ?

Oder ist ein PT100  NTC  PTC eher zu empfehlen ?


Gruß
Matthias

von Peter D. (peda)


Lesenswert?

@Matthias,

der Hauptunterschied ist, daß der LM75 nur im blöden SO-8 Gehäuse, d.h. 
als Sensor äußerst ungünstig zu montieren ist.

Der DS1820 ist dagegen im Transistor TO-92 Gehäuse viel besser an den 
Meßort zu bringen.

Außerdem können die DS18B20 viel kleiner auflösen (0,0625°) und beliebig 
viele Sensoren können parallel geschaltet werden, da jeder eine weltweit 
einmalige Adresse hat.

Ich hab hier was in C:

http://www.specs.de/users/danni/appl/soft/c51/thclock/1wire.c51

Und das Assemblerlisting ist hier:

http://www.specs.de/users/danni/appl/soft/c51/thclock/1wire.lst


Von PT100 und Konsorten ist abzuraten.
Es sei den Du schlägst Dich gern mit Problemen wie 
Leitungswiderstandskompensation, Kennlinienentzerrung, Brummen, 
Störabstand, AD-Wandlung rum, aber da muß man wohl schon Masochist sein.

Einzige Außnahme sind Hochtemperaturanwendungen.



Peter

von Marco (Gast)


Lesenswert?

Hat schon mal jemand ne Routine für den searchROM-Befehl vom DS1820 in 
Assembler geschrieben? Ich hab mal versucht damit anzufangen, mir ist 
abner nach relativ kurzer Zeit klar geworden, dass mein KnowHow dafür 
noch nicht ausreicht. Ist das wirklich so kompliziert oder hat das schon 
mal jemand gemacht?

von A. Arndt (Gast)


Lesenswert?

Hallo,

schau mal den Beitrag (relativ neu) analog - Digitalwert auslesen an, 
dort gibt es komplettes (kurzes) Listing zum Auslesn und Darstellen auf 
LCD von Werten mit DS1820.

Gruss
A. Arndt

von Peter D. (peda)


Lesenswert?

Hallo Marco,

oben ist doch schon das Assemblerlisting mit bei.

Außerdem hab ich es mal auf dem ACE1202 programmiert:

http://www.specs.de/users/danni/ace/ds1820/index.htm


Um beides zu verstehen, muß man sich aber schon mal die Mühe machen und 
die Ablaufdiagramme auf den Maxim-Datenblättern durcharbeiten.


Peter

von Marco (Gast)


Lesenswert?

Hi Peter,

das Diagramm und die Klartextbeschreibung hab ich wohl schon angeschaut.
Welchen uC verwendest du? Dein AssemblerCode ist glaub ich nicht ganz 
kompatibel mit dem vom Atmel AVR, zumindest kenn ich da einige Befehle 
nicht (z.B. acall, jnc, jz,...).

mfg marco

von Peter D. (peda)


Lesenswert?

@Marco,

von AVR hast Du ja nirgends was gesagt.

Das eine ist 8051, das andere ACE.

Das C-Programm läuft auf einem AT89C2051.


Peter

von Felix (Gast)


Lesenswert?

habs jetzt endlich selber hingekriegt, auch wenn mir hier in diesem 
beitrag nicht so richtig jemand geantwortet hat. aber das ist nicht so 
schlimm.
gruß felix

von Peter D. (peda)


Lesenswert?

@Felix,

danke für Deine Antwort.

Aber so ein Forum ist nicht nur nehmen, sondern auch geben, sonst 
funktioniert es nicht !!!

Deshalb, wenn man das Problem selber gelöst hat, dann bitteschön auch 
die gefundene Lösung posten.


Peter

von Felix (Gast)


Angehängte Dateien:

Lesenswert?

na klar, ist doch kein problem. hier ist mein selbstgebastelter 
quellcode. ist in assembler und ich hoffe, dass die kommentare 
verständlich sind, was abläuft. ist für eine taktfrequenz von 8MHZ 
ausgelegt, für eine andere frequenz müssen die warte-schleifen 
entsprechend abgeändert werden. die einzelnen werte, die ausgelesen 
werden, stehen dann in den einzelnen speicherstellen (dürfte aber ohne 
probleme aus der datei ersichtlich werden). was man dann mit den werten 
anfängt bleibt jedem selbst überlassen (zb ausgabe auf ein lcd oder über 
die spi-schnittstelle...). falls jemand noch fragen dazu hat, dann 
schickt mir doch einfach eine email. ich versuch dann mit meinem wissen 
diese zu beantworten.
viel spaß noch, gruß felix

ps ich möchte nochmal auf meinen anderen beitrag aufmerksam machen, da 
ich da nicht weiterkomme
http://www.mikrocontroller.net/forum/read-1-18184.html

von ling (Gast)


Lesenswert?

Dear sir,

Good afternoon.


Please quote :

P89C51RD2BN, PHIL 02+, 3000 PCS.
DS18S20 ( TO-92), DALLAS 01+, 1000 PCS
UPD78F9116ABMC-5A4         NEC 02+          500 or more pcs.

New original packing.

Thank you.


Best regards,
Ms. Ling Tsang
LUCKY TOP TECHNOLOGIES LTD
TEL:852-26872839
FAX:852-26871179
E-MAIL: ling@luckytop.com.hk
Web site: http://www.luckytop.com.hk



------------------------------------------------------------------------ 
--------

von Onur Demir (Gast)


Lesenswert?

Hallo,

mein Ziel ist es, ein Temperatursensor (DS18S20) mit einem ATMEGA8515
anzusteuern, und auszulesen. Dafür habe ich den Code von Felix
genommen, und Ihn für den Prozessor mit 4MHz angepasst. Der Code ist
logisch und ist auch einfach zu verstehen. Da ich aber neu in Sachen
AVR Programmierung bin, und ich mich immer noch im Anfangsstadium
befinde, habe ich noch einige Fragen:

1. Theoretisch und Praktisch müsste der Temperaturwert im Register
Temperatur_LSB stehen, oder?

2. Wie kann ich die Adresse auslesen? Kann ich das mit Read, und dann
irgendwo als *.Hex File abspeichern? Müsste der Wert dann dort stehen?

Wenn Nein,

3. Wie kann ich dann die Echtzeittemperatur erfahren?

Ziel ist es, ein Temperaturwert über irgendeine Adresse binär
auszulesen, ohne den Wert an ein LCD, oder USART auszugeben. Das kommt
später.
Danke für die Antworten.

MFG

Onur

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.