Binärzahl umwandeln

Gast #2473129
Lesenswert?

Hallo,
ich muss eine 12bit Binärzahl als Dezimalzahl auf einer bzw. mehreren 
7-Segment-Anzeigen darstellen.
Wenn es nicht anders möglich ist, kann sie auch erst in BCD umgewandelt 
werden.
Habe mich schon ein wenig umgeguckt, aber nichts brauchbares gefunden.

Vielleicht kann mir ja jemand helfen.

Gruß Adrian
Gast #2473142
Lesenswert?

1
;***************************************************************************
2
; 8Bit binär in packed BCD  -  wert in aa - ergebnis in aa ! is so cool man !
3
bin2bcd:
4
    clr  temp    ;clear result msd
5
bBCD81:    subi  aa,10    ;input = input -10
6
    brcs  bBCD82    ;abort if carry set
7
    subi  temp,-$10  ;für packed bcd 
8
    rjmp  bBCD81
9
bBCD82:    subi  aa,-10
10
    add  aa,temp
11
    ret
12
;***************************************************************************

und danach über eine Tabelle in die entsprechenden segmente zerlegen und 
ausgeben möglichst gemultiplext oder gleich auf einen BCD-/seg. wandler 
(7447) ;-]
Gast #2473158
Lesenswert?

Geht das auch ohne, dass ich etwas programmieren muss?

Ich versuche mal das Ganze zu beschreiben:
Ich habe eine Codierung, die aus 2 Dezimalzahlen und noch ein Paar 
anderen Sachen besteht.
Um die Codierung auszulesen habe ich einen 48pol. Stecker. Die anderen 
Sachen sind alle nur einzelne Bits, Die eine Zahl geht nur bis 6 (3bit), 
also mit einer Anzeige kein Problem für mich.
Die zweite Zahl ist etwas größer (12bit) und die muss ich auch 
umwandeln, möglichst ohne zu programmieren.

Ich hoffe das reicht, um mir zu helfen. ;)
Gast #2473162
Lesenswert?

Sehr aufschlussreiche Erklärung - jetzt ist sicher allen alles klar.

Man kann das (wenn man nicht programmieren will) auch in Hardware 
machen. Die 74HC... Reihe bietet da sicherlich das eine oder andere 
passende an
Gast #2473163
Lesenswert?

Adrian schrieb:
> Die eine Zahl geht nur bis 6 (3bit),
> also mit einer Anzeige kein Problem für mich.

Das sollte sich problemlos mit einem BCD-Siebensegment-Decorder 
erschlagen lassen.

Adrian schrieb:
> Die zweite Zahl ist etwas größer (12bit) und die muss ich auch
> umwandeln, möglichst ohne zu programmieren.

Wenn das eine 12bit-Binärzahl ist, dann wird das etwas schwieriger.
Das sollte sich aber auch mit ein paar Logik-Chips erschlagen lassen.
Persönliche Seite #2473200
Lesenswert?

Ein 16-Bit-EPROM und BCD-zu-7-Segment-Decoder.

An die Adressleitungen des EPROMs werden die Binärdaten angelegt, das 
EPROM gibt auf den Datenleitungen vier Dezimalstellen aus, mit denen die 
BCD-zu-Siebensegment-Wandler angesteuert werden.

Das EPROM muss dann nur mit entsprechend sinnvollem Inhalt gefüllt 
werden.

Alternativ zwei EPROMs verwenden und direkt (bzw. über Treiberbausteine) 
die 7-Segment-Anzeige damit ansteuern.

Wenn die 7-Segment-Anzeige im Multiplex angesteuert wird, reicht auch 
ein 8-Bit-EPROM. An die Adressleitungen werden neben den Binärdaten auch 
noch der die Anzeigen steuernde Multiplexer angeschlossen.

Für die Multiplexersteuerung reicht hier ein 2-Bit-Binärzähler, der z.B. 
an einem freilaufenden RC-Oszillator angeschlossen werden kann.

Somit kann mit einem 27128 problemlos eine 12-Bit-Zahl auf einer 
vierstelligen Anzeige ausgegeben werden.

Natürlich ist auch hier das EPROM mit entsprechend sinnvollem Inhalt zu 
füllen.
#2473201
Lesenswert?

Adrian schrieb:

> Die zweite Zahl ist etwas größer (12bit) und die muss ich auch
> umwandeln, möglichst ohne zu programmieren.

Nun, es gibt das 74185-IC für diesen Zweck, das ist aber wohl obsolet
und deshalb schwer erhältlich. Eine andere Methode wäre, diese 12-Bit-
Zahl in einen binären Abwärtszähler zu laden, bis auf 0 runterzuzählen,
und diese Impulse in einem dezimalen Zähler aufwärts zu zählen. Dann
kann man sie mit einem BCD/siebensegmentdekoder problemlos anzeigen.
Gruss
Harald

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