Zwei Dezimalstellen mit 7-Segment

OP #3323524
Lesenswert?

Hallo Forum,

ich weiß leider nicht ob ich mit dieser Topic hier richtig bin :/
Es geht darum, dass ich einen schaltbaren Addierer/Subtrahierer habe, 
dessen Ergebnis maximal 18 liefert. Das ganze wird später ein 
Taschenrechner mit Zahlen von 0 - 9. Nun bin ich aber nach einer über 
einstündigen Suche ratlos, wie ich das Ergebnis zweistellig in Dezimal 
auf ?zwei 7-Segment Anzeigen ausgeben soll. Im Anhang seht ihr die 
Schaltung. Im Endeffekt soll dort einfach beispielsweise "15" stehen, 
und nicht "F".
Ich wäre wirklich dankbar über ein paar Tipps und Anregungen.
Danke schon einmal!
Angehängte Dateien:
OP #3323560
Lesenswert?

Das ganze ist Teil eines relativ großen Projekt innerhalb unseres 
Berufskollegs. Ein E-Techniker gab uns schon den Tipp, wir könnten noch 
"Cout", also den Übertrag an eine zweite Anzeige hängen, jedoch hat das 
bei uns noch nciht so wirklich geklappt. µC wären echt schön, sind aber 
leider nicht erlaubt :/
Gast #3323580
Lesenswert?

Wenn ich deinen Schaltplan richtig interpretiere, hat deine 
7-Segment-Anzeige bereits einen 4-bit-binär-nach-hex-Decoder integriert. 
Damit geht es auf jeden fall nicht.
Folgendes könnte funktionieren:
 * Ein binär zu dezimal Decoder, der direkt zwei 7-Segment-Anzeigen 
ansteuert (keine Ahnung ob es das als fertiges Bauteil gibt)
 * Einen kleinen Speicher mit parallelem Interface mit mindestens 4 
Adressleitungen und 8 Datenleitungen (die beiden Segmente für die 
führende 1 können zusammengefasst werden) + evtl. einen 8fach-Treiber
 * Einen kleinen uC, der 4 Eingänge auf 8 Ausgänge umsetzt
 * 1-2 Hände voll Or-Gatter
 * 1-2 Hände voll Dioden
 * einen PC mit Minecraft: http://www.youtube.com/watch?v=SAVFJMwdxk8
Gast #3323596
Lesenswert?

Das Zauberwort heisst binary to decimal, der nötige Chip 74185, ohne 
solche Arithmetikchips nur mit XOR, AND, NOT und OR Gattern ist es recht 
aufwändig, obwohl man nur die höherwerigen 3 bit beachten muss, wenn die 
grössergleich 5 sind muss man die Zehner-1 anzeigen und 5 abzirhe(3 
draufzählen). Dein Cout sagt zunächstmal nur ob die Zahl negativ wird, 
also ein Minuszeichen anzuzeigen ist, bevkr du das 2er Komplement 
bildest genau so falsch wie beim subtrahieren.
#3324922
Lesenswert?

wobei Du den Subtrahierer 4008 ja schon da hast.
Also Überlauf fest stellen, damit den Subtrahierer vom Ursprungswert 10 
abziehen lassen, und den Rest ausgeben plus der "1" aus dem Überlauf.

Den Überlauf kannst Du machen wenn Du D0-D2 veroderst (zB. mit Dioden) 
und das mit D3 verundest.

D0 ----|>---|
D1 ----|>---|       __
D2 ----|>---|______|    |
                   | UND|_____  Aktivierung des Subtrahieres mit H
D3 ________________|    |      und D0 des MSB Bits
                   |____|

Ich denke so könnte das gehen.
Sorry, bin nicht der ASCI Künstler
OP #3324958
Lesenswert?

Das ist Multisim
Hab grade einen langen Text geschrieben der nicht abgeschickt wurde 
Klasse...

Ich habe noch ein Problem.
Der Benuzter drückt einen Taster, z.B. den Taster für 7. Anschließend 
wird der Binärcode für "7" an das obere Schieberegister, Schieberegister 
A, geschickt. Dieses Register soll nun mit 4 Takten die 4Bit Zahl 
einlesen. Wie kann ich sagen: "hey, hör nach vier Takten auf"?
Ein weiteres Problem ist, dass das Tastenfeld nur innerhalb einer 
Leitung den Binärcode ausgibt. Das heißt, ich gebe eine Zahl ein, diese 
wird in das obere Register, Register A, eingelesen. Als nächstes wählt 
man "+" oder "-" und dann noch eine Zahl, die aber in Register B 
eingelesen werden soll, also das untere der beiden Register. Wie kann 
ich diesen Wechsel realisieren. Wir wissen im Moment echt nicht weiter.
#3325106
Lesenswert?

Wikipedia ist Eurer Freund.

Einen Taschenrechner in TTL nach zu bauen ist kein Pillepalle.
Schon gar nicht, wenn digitale Grundlagen fehlen.
Wenn Ihr alle nicht wisst, was zu tun ist, war entweder der Telekolleg 
Sch* oder Ihr habt alle dabei geschlafen.

Sorry

Euch fehlen rudimentäre Kenntnisse zur Lösung Eures Vorhabens.
Das geht hier nicht mit 2 oder 3 Posts.
OP #3325114
Lesenswert?

Das ganze ist leider nicht ganz einfach. Das ganze soll laut dem 
"Lehrer" als Einführung in die Mikrocontrollertechnik dienen. Wir haben 
nicht viel Wissen, auf dem Gymnasium ist ständig alles selbst aneignen 
angesagt. Leider ist das ganze aber nicht so einfach, wenn man nicht mal 
weiß wonach man suchen soll. Das Projekt muss nächste Woche fertig sein 
und Hilfestellung gibts nicht. Jeden Tag erst um 17.30 Uhr von der 
Schule wieder da und dann soll ich mir das auch noch alles aus der Nase 
ziehen.
Ich versuche jetzt irgendwas mit einem Counter...
Gast #3325491
Lesenswert?

> ... als Einführung in die Mikrocontrollertechnik ...

Na, dann verbietet sich die "diskrete" Digital-IC-Lösung doch von ganz 
alleine.
Und die Mikrocontroller-Werkzeuge sollten da ja vorhanden sein?

Einen ATtiny2313 mit den 4 bit rein und den 1 x 7bit (Einerstelle) und 1 
x 1Bit (Zehnerstelle). Macht 12 Pins. Interner Oszillator eingestellt, 
erspart das externe Quarz.
Die Programmlogik ist einfach nur eine "kombinatorische Schaltung". 
keine sequentielle. Also wirklich simpel. Guter Lehrer!


Blackbird
#3326420
Lesenswert?

Stephan Henning schrieb:
> wobei Du den Subtrahierer 4008 ja schon da hast.
> Also Überlauf fest stellen, damit den Subtrahierer vom Ursprungswert 10
> abziehen lassen, und den Rest ausgeben plus der "1" aus dem Überlauf.
>
> Den Überlauf kannst Du machen wenn Du D0-D2 veroderst (zB. mit Dioden)
> und das mit D3 verundest.
>
> D0 ----|>---|
> D1 ----|>---|       __
> D2 ----|>---|______|    |
>                    | UND|_____  Aktivierung des Subtrahieres mit H
> D3 ________________|    |      und D0 des MSB Bits
>                    |____|
>
> Ich denke so könnte das gehen.
> Sorry, bin nicht der ASCI Künstler

da hatte ich noch einen Denkfehler, da die 9 auch schon den Überlauf 
auslöst.
Aber das hast Du sicher schon bemerkt. Das heist D0 muss zusätzich noch 
mit D1 und D2 verundet werden und geht dann erstz auf das letzte UND.
Sorry
#3326428
Lesenswert?

Peter Dannegger schrieb:
> Du nimmst einfach einen Komparator (CD4063) und einen weiteren
> Subtrahierer.
> Wenn der Komparator >9 erkent, ziehst Du 10 ab und zeigst die "1" am
> ersten Digit an.

jep, so mein Vorschlag weiter oben. Bis auf den 4063.
Hätte ich auch drauf kommen können.
Ich hätte aus DDR Zeiten noch die DS8121 als 8 Bit Komparator gesagt.
Damit hatte ich die Weckzeit meiner TTL Uhr gestellt.
Man vergisst viel mit den Jahren.....
OP #3326477
Lesenswert?

Ich glaube da wurde etwas falsch verstanden. Wir dürfen NICHT den µC 
benutzen...Wegen der Verbesserung des Displays auf Dezimal schaue ich 
erstmal wenn das andere alles läuft.
Eigentlich ist jetzt alles fertig. Nur eine Sache klappt immer noch 
nicht.
Jemand drückt eine Taste. Ein kurzer Impuls wird abgefangen und damit 
wird Ausgang A angesteuert. Beim zweiten Impuls soll allerdings der 
Ausgang B angesteuert werden. Ich glaube echt ich hab grade ein Brett 
vor dem Kopf.
Hier einmal die ganze Schaltung und nur der Problemzweig.
Bei meiner Lösung wird das zweite Flip Flop sofort mitgesetzt, wodurch 
es an beiden gleichzeitig ausgegeben wird :/ Irgendein Denkfehler
Angehängte Dateien:
#3326495
Lesenswert?

Marcel Schwegler schrieb:
> Der Benuzter drückt einen Taster, z.B. den Taster für 7. Anschließend
> wird der Binärcode für "7" an das obere Schieberegister, Schieberegister
> A, geschickt. Dieses Register soll nun mit 4 Takten die 4Bit Zahl
> einlesen. Wie kann ich sagen: "hey, hör nach vier Takten auf"?
> Ein weiteres Problem ist, dass das Tastenfeld nur innerhalb einer
> Leitung den Binärcode ausgibt.

74147 oder 40147?

> Wie kann ich diesen Wechsel realisieren. Wir wissen im Moment echt nicht weiter.

7474 + etwas Kleinvieh

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren