PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BCD Anzeige zweistellig aber wie?



ssalbach
15.05.2005, 21:57
Hallo,
also habe heute den ganzen Tag mit einem Mega 8 experementeirt.
Und bin glücklich, das nun ne menge Lämpchen blinkén:-)
Programiere ihm in Pascal.
Jetzt habe ich eine BCD Anzeige und einen 74LS47 Treiber angeschlossen, wie bekomme ich es jetzt hin das er nicht nur von 0-? zählt sonder mit einem zweiten IC und BCD bis 99???
Nutze Port D um 8Bit ausgabe nutzen zu können. Hatte gehofft das geht mit zwei 74Ls47 ](*,)

mbod77
15.05.2005, 23:42
Huhu,

so schwierig sollte das nicht sein. Je nach dem mit was Du programmierst (Assembler / Basic / C) musst Du halt deine Zahl in Zehner und Einer aufteilen und dann auf die jeweiligen Ports ausgeben.

In C könte das in wtwa so aussehen:

int zahl, zehner, einer;
zahl = 57;
//Zehner berechnen
zehner = zahl / 10;
einer = zahl %10;
PORTD = (zehner << 4) | einer;

Grüßle Jochen

mbod77
15.05.2005, 23:43
mmmh,

wer lesen kann ist klar im vorteil ;-)
>Programiere ihm in Pascal

naja, aber der Code sollte in Pascal übertagbar sein

Ist halt schon spät / früh

Gääähn

ssalbach
16.05.2005, 00:07
hmm, stimmt, so sollte es gehen. Aber wie schreibt man das nun so, das ich das gleiche Port nutzen kann also für die einer bit 0-3 und für die zehner 4-7?
Wäre einfacher als die verdrahtung wieder zu ändern

mbod77
16.05.2005, 10:18
Na so wie ich es geschrieben habe ;-)
Indem Du die Zehner mit einem Shift-Befehl um 4-Bits nach oben schiebst.
in C geht das mit dem Befehl
(Zehner << 4)
Wie das in Pascal geht weiß ich nimmer sollte aber mit Dr. Google leicht herauszfinden sein.

Noch mal als Erklärung was folgender Befehl macht:
PORTD = (zehner << 4) | einer;

1. Wird die Zehner-Zahl um vier Bits nach oben geschoben also an PD4-PD7
2. Dann wird mit der Einer-Zahl Oder-Verknüpft -> die Einer-Zahl ist auf PD0-PD3

So, viel Spaß noch beim Basteln, Jochen

ssalbach
16.05.2005, 11:12
klingt gut, habe jetzt erstmal verschiene Port genommen, werde es aber nochmal ändern.

ssalbach
22.05.2005, 20:07
hmm, klappt ja alles super, aber bekomme ich so auch eine 3te und 4te stelle?
Er zählt z.B. bis 99 und macht dann bei 100 Murcks, da der BCD Chip bis 15 zählt.
Ich müsste also bei 99 an den dritten chip übergeben.
habe eine Verdrahtung wie diese hier
http://www.dumdididum.de/blackstrom/avr/avr_uhr/plan.gif
die zahlen werden dadurch angezeigt, das er immer auf alle gleichzeitig die gleichen Bits anlegt, aber immer nur das in diesem Momdent richtige LED BCD einschaltet.