Forum: Mikrocontroller und Digitale Elektronik AVR DS18B20+ LCD


von derjan (Gast)


Lesenswert?

hallo

ich werkele momentan an einem standalone lcd-thermometer herum.. habe 
momentan das problem, dass ich nicht weiss, wie der ds18b20 die 
messdaten ausgibt.. nein ist schon klar wie XD nur nicht in welchem 
format, und wie ich das dann umrechnen kann, sodass meine LCD 
ansteuerungsroutine dass so verwursten kann dass ich wenn der DS ne 1 
ausgibt auch ne 1 auf dem lcd lesen kann.. denn die hex- werte vom DS 
sind sicher nicht die gleichen wie die die das lcd benutzt?

ich hoffe ihr wisst wovon ich rede oder? ich suche quasi eine routine, 
die einen messwert von einem DS18b20 so umwandelt, dass ein KS0070B LCD 
controller damit was anfangen kann.. weiss da jemand was?

mfg
jan

von Michael W. (mictronics) Benutzerseite


Lesenswert?

Schon mal die Suche in der Codesammlung bemüht? Auch Google hilft 
meistens...

von derjan (Gast)


Lesenswert?

sicher.

nur das problem ist, dass ich das ganze gerne in assembler hätt.. peter 
danneger hat hier dazu schonmal was gepostet, worin so eine routine 
steckt.. ich hab nur das problem dass mein mega8 scheinbar einen reset 
verursacht, wenn ich versuche die eingelesenen werte umrechnen zu 
lassen.. habe irgendwie das gefühl, dass diese routine für ein lcd im 4 
bit modus gedacht ist :

Beitrag "Mehrere DS1820/DS18B20 auslesen"

der betreffende code ist:

hex_out:
  rcall  _hxo1
  mov  temp, temp2
_hxo1:  swap  temp
  mov  temp2, temp
  andi  temp, 0x0F
  cpi  temp, 10
  brcs  _hxo2
  subi  temp, 10 + '0' - 'A'
_hxo2:  subi  temp, -'0'


zu finden in "outval"


ist das für den 4 bit modus? da wird ja geswapt, dadurch komm ich 
dadrauf.. ich denk die rechnung die gemacht werden muss, damit das LCD 
die messwerte versteht nicht so kompliziert ist, allerdings bin ich noch 
einsteiger..

von Peter D. (peda)


Lesenswert?

Am besten, Du fängst erstmal klein an, z.B. Textausgabe auf LCD, 
Zahlenausgabe, Zähler ab/auf mit 2 Tasten usw.

Die obige Routine macht ihrem Namen entsprechend ein Hexadezimalausgabe 
(0..F), d.h. keine Dezimalausgabe (0..9).

Deshalb muß geswapt werden (2. Nibble ausgeben).

Üblicher Weise schreibt man einzelne Funktionen, also Zahlenumwandlung 
ist eine und Ausgabe auf LCD ne andere, die dann wiederum aus einzelnen 
Unterfunktionen besteht usw.

Der Umwandlungsfunktion ist es also vollkommen wurscht, ob 4Bit- oder 
8Bit-LCD oder ob über UART an ein Terminalprogramm usw.


Peter

von derjan (Gast)


Lesenswert?

alles klar.. war mir bloss jetzt nicht so sicher was die macht.. danke..

die sache mit der textausgabe hab ich schon, allerdings hab ich keine 
routine, die mir die anzuzeigenden buchstaben in hex umwandelt, wie in 
deinem beispiel, sondern hab mir die zeichen aus der tabelle im 
lcd-datenblatt gesucht..

um das umzurechnen benutzt du dec_out oder? oops hab mich nochmal 
umgeschaut...

hatte die namen deiner routinen jetzt anders interpretiert.. so machts 
natürlich sinn..


mfg

PS: @ umwandlungsfunktion- letzte absätze: klar ist logisch, so 
programmieren wir in der schule auch.. nur ist halt immer die frage ob 
sich auch alle dran halten oder :P

von Paul Baumann (Gast)


Lesenswert?

@Derjan

Hier ist das Datenblatt zu holen.
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2812

Dort ist beschrieben, wie man ihn ansteuert und in welchem Format er 
seine
Daten ausgibt.

Mit Assembler kann ich nicht dienen; bin Bascom- Mann. ;-)

MfG Paul

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.