Forum: Mikrocontroller und Digitale Elektronik Variabler Wert am Display


von Britneypunter (Gast)


Lesenswert?

Hallo Leute,

ich habe ein mehr oder weniger kleines problem:
Ich möchte einen variablen Wert am Display ausgeben,
der aus einem Timer/Counter stammt. Die einzelen Stellen konnte ich 
schon 'rausfiltern'. Wenn zum beispiel das T/C register einen Wert von 
125 hat, so konnte ich schon die 1 als hunderter-, die 2 als zehner- und 
die 5 als einerstelle jeweils einzeln in ein register befördern.

Ich habe schon eine Idee wie ich's machen könnte, aber das wäre zimlich 
programmier aufwand, bezogen auf die länge des Quellcodes.

Danke schonmal im voraus

von crazy horse (Gast)


Lesenswert?

falls du (wie ich annehme) auf einer Siebensegmentanzeige darstellen 
willst, gibt es mehrere Wege.
1. Je Stelle einen BCD/Siebensegmentdekoder mit Speicher benutzen, 
einfach anzusteuern, braucht 3 ICs, 21 Widerstände und 7 Portleitungen 
am MC.
2. Serielle Ausgabe mit Schieberegistern, auch 3 ICs (74HCT4094), 21 
Widerstände, nur 3 Portleitungen, etwas höherer Softwareaufwand.
3. die "MC-Standardlösung": Multiplexansteuerung, benötigt nur 7 
Widerstände und 3 Transistoren.
Wenn du keinen externen Dekoder verwendest, mußt du die Codewandlung im 
MC (mit Tabelle) machen.

von Peter D. (peda)


Lesenswert?

Laß Dir doch nicht alles aus der Nase ziehen:

Was für ein Display ?
Welche Idee hast Du denn ?
Was ist bei Dir langer Quellcode ?

Stellen rausfiltern klingt ja komisch. Das nennt man 
Zahlenformatwandlung, z.B. Binär nach Dezimal.
Gebräuchliche Methoden sind:
1. Divisionsmethode
2. Subtraktionsmethode
3. Packet-BCD Additionsmethode
Welche hast Du denn verwendet ?


Peter

von Britneypunter (Gast)


Lesenswert?

Ich möchte das auf einem LC-Display ausgeben.

Meine Idee:
Jeden Registerwert (0-9), der dann im jeweiligen register steht 
(hunderter-,zehner- und einerstelle)mit einer vergleichs-operation mit 
dem jeweiligen Dezimalwert (0-9) zu vergleichen. Stimmt der Vergleich 
überein, so ist dann da der jeweilige ASCII Code für die jeweilige zahl 
hinterlegt. Und den kann ich dann an's LCD senden.

von thkaiser (Gast)


Lesenswert?

Man könnte aber auch das Offset für Ascii (=$30 oder 48 dez.) einfach 
zum Registerwert hinzuaddieren. Eine Tabelle und ein Vergleich ist 
absolut unnötig.

von Britneypunter (Gast)


Lesenswert?

@ thkaiser:

das ist mir gestern Abend dann auch noch eingefallen, als ich mir die 
ASCII tabelle mal genauer angesehen habe;
und es funktioniert auch.

Trotz dem danke ;-)

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.