www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8051: Hex=>Dez an Hyperterminal


Autor: einer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag.

Ja, wahrscheinlich werden sich gleich wieder Menschen aufregen, da 
ähnliche Fargen schon oft beantwortet wurden.
Aber ich komme einfach momentan nicht weiter.

Also folgendes Problem:

Der AD-Wandler meines 8051 spuckt mir einen Hex-Wert (z.B. 3Bh) aus.
Wie schaffe ich es denn jetzt bitte den passenden Dezimalwert (in diesem 
Fall natürlich 59) per Hyperterminal auszugeben. Im Moment schmeisst mir 
mein tolles Programm leider nur die betroffenen Symbole (;) aus dem 
ASCII-Code an den Bildschirm.

Bitte melden.

Ich verzweifle grade.
Es bedankt sich
EINER

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst den Wert in eine Klartextrepräsentation umwandeln.
Also aus dem einen Byte mit dem Wert 59 die drei Zeichen "0", "5" und 
"9" erzeugen und diese dann nacheinander an die serielle Schnittstelle 
ausgeben.

In C kann man das mit printf oder itoa machen.

Autor: einer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider programmiere ich in Assembler und habe mich momentan völlig in 
meinem Programm verirrt.
Hat vielleicht jemand einen Tipp oder eine kleine Routine, um mich zu 
befreien?

Schonmal Danke!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist zwar nicht für 8051 aber vielleicht hilfts ja trotzdem
http://www.mikrocontroller.net/articles/AVR-Tutori...

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
normale Umwandlung von HEX nach Dez.
Dann noch Nibbeln und raus damit.
Um ASCII draus zu machen zu jedem Nibbel noch 30H dazu.
bzw Terminalprogramm so einstellen das die "richtigen" Werte angezeigt 
werden. Hier im Forum gibts ein gutes Terminalprogramm.

Autor: einer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es eigentlich einen befehl, der mir ein carry setzt, wenn das 
ergebnis "negativ" ist?

Autor: M. Faid (sajuuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein gibts nicht. Bei 8085 gabs noch ein negativ-Flag lang it's her.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
einer wrote:
> gibt es eigentlich einen befehl, der mir ein carry setzt, wenn das
> ergebnis "negativ" ist?

Ja:
MOV C, ACC.7


Peter

Autor: Pieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin moin,

ulk, natürlich gibts ein SetB C, das löst aber nicht das Problem mit 
negativen Zahlen. Wie soll der ADU aber negative Zahlen erzeugen?

und schon mal gegoogelt?
"8051 hex dec" ->
http://www.8052.com/codelib.phtml

mfg
Pieter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
einer wrote:

> Der AD-Wandler meines 8051 spuckt mir einen Hex-Wert (z.B. 3Bh) aus.
> Wie schaffe ich es denn jetzt bitte den passenden Dezimalwert (in diesem
> Fall natürlich 59) per Hyperterminal auszugeben.
; ACC = Zahl (0..255)
MOV B, #100
DIV AB
CALL NUMOUT
MOV A, B
MOV B, #10
DIV AB
CALL NUMOUT
MOV A, B
NUMOUT:
ADD A, #'0'
CHAROUT:
MOV SBUF, A
JNB TI, $
CLR TI
RET


Peter

Autor: einer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für eure hilfe.
hatte tatsächlich mal ein brett vorm kopf.
das mit dem teilen war meine erste idee, aber ich hatte leider das 
Übertragen vom Rest vergessen.
So weiter gehts mit zumindest etwas größeren schritten in der welt der
µ-technologie.

Es bedankt sich
EINER

Autor: die ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum denn so kompliziert? Nimmst du HTerm und gut ist's (ist eh besser 
als das stupide Hyperterminal). Da kannste dir die Werte als binäre, 
hexadezimale, dezimale, ... Werte angucken.

http://www.der-hammer.info/terminal/hterm.zip

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.