PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Binär zu 2x2 7 Segment Decoder



TommyP87
01.10.2009, 18:39
Hallo,
ich bin neu hier
und habe auch gleich eine frage:

Ich hab eine "Binäruhr" und möchte diese erweitern, damit auch leute die das nicht verstehn die Uhrzeit ablesen können.

Also ich habe 4 bit für die Stunden.
Und 6 Bit für die Minuten.

Ich habe da an einen PIC16F871

Die Stunden will ich auf zwei Sieben Segment anzeigen darstellen
und die Minuten auf den 2 anderen.

Ich will nix multiplexen oder so, das wird mir sonst zu kompliziert.

Ich hab gedacht das ich das mit ner wertetabelle abfrag.
einmal die stunden:
Bsp: 1010 und dann mit anderen ports die zwei sieben segment anzeigen ansteuere, sodass die linke eine 1 und die rechte eine 0 hat. QUasi (10 Uhr)

Aber ich hab keine AHnung mit welchem Befehl ich das machen muss.
Kenn mich mit PALs halt besser aus, aber da reichen die ports nicht.
Wär super wenn ihr mir ein zwei zeilen von der Tabelle schreiben könntet.

Oder fällt euch was besseres ein?


Grüße Thomas

darwin.nuernberg
01.10.2009, 18:48
wie werden deine daten angezeigt, echt binär oder was eigenes?
Es gibt fertige decoderbausteine, welche z.B. einen 4-Bit Wert in 7-Segment für LC oder LED Anzeigen decodieren. wäre das was?
Hier mal ein Datenblatt: http://focus.ti.com/lit/ds/symlink/sn74ls47.pdf

Gut/OKAY ist 70er/80er Jahre Technologie, aber es muss ja nicht immer ein Prozessor sein...

TommyP87
01.10.2009, 20:23
ja da kommen richtge binärwerte raus.

den baustein kann ich leider nicht nehmen, weil ich ja von 0-12 kommen muss (bzw. von 0-59) und an dem kann man nur 1 7-seg anzeige anschließen.

mir wäre ein ic auch lieber wie ein µC aber ich hab leider keinen entsprechenden gefunden.


Grüße Thomas

Besserwessi
01.10.2009, 20:48
Es wäre vermutlich einfacher gleich einen µC für die richtige Uhr zu nehmen. Eventuell auch eine Uhr mit zusätzlichen Binärausgang, oder halt umschaltbar.

TommyP87
01.10.2009, 20:54
klar wäre das einfacher aber die binäruhr hab ich halt schon und wollte die nur um ein gimmick erweitern =)

es muss doch möglich sein das iwie mit nem programm zu lösen.


Grüße

darwin.nuernberg
02.10.2009, 06:10
ja da kommen richtge binärwerte raus.

den baustein kann ich leider nicht nehmen, weil ich ja von 0-12 kommen muss (bzw. von 0-59) und an dem kann man nur 1 7-seg anzeige anschließen.

Grüße Thomas

OK dann muss wohl doch ein Contoller ran.
Bedenke: 0-12 Eingänge wären schon mal 12 Pins für deine Eingänge, dann noch 14 Pins als Augang für deine zwei 7-Seg. anzeigen sind dann schon 26 IO Pins nötig. Das bedeutet mindestens ein ATmega16, alleine wegen der benötigten IO's.

evtl. schreib ich dir am Wochenende ein kleines Prog. Ist nicht sehr schwer.

Aber nochmals zu Deiner Codierung:
ich glaube nicht dass es ein echter BCD Code ist, wenn es wie die Binäre Uhr in Berlin ist.

12 wäre z.B. 1100
so wie ich Dich verstehe hast du für 12 10000000000

Und was machst Du mit den Minuten

Die Beliner Uhr hat soweit ich mich erinnere Lampen für 5-Minuten
und Lampen für Minuten


47 Minuten wären dann 111111111000 (9x 5er Minuten)
und 0010 (2 Minuten)

Als BCD-Code wäre 47 allerdings 101111.


Also erklär mal biitte ganz genau was Deine Uhr anzeigt und wie!

TommyP87
02.10.2009, 14:20
also: die stunden und minuten sind getrennt.
Stunden sind 4 bit
und Minuten 6 andere bit

wird getrennt voneinander in 2 reihen angezwit erste reihe stunden zweite reihe minuten.

also wäre
1100 12 Stunden
101010 42 Minuten
also 12.42 Uhr

Bei den siebensegmentanzeigen der Stunde kann ich mir bei der ersten stelle jede Menge segmente sparen, da ja nur eine 1 dargestellt werden muss. und dafür brauch ich ja nur die segmente a und b.

Ich würde das ganze ding also schon gern mit nem pic aufbauen, da wir mit denen im geschäft auch arbeiten.


Grüße

darwin.nuernberg
02.10.2009, 14:48
So währen isch geschrieben habe hast Du bereits geantwortet,
wenn ich jetzt was falsches dastehen habe dann eben nochmal...




Wenn Deine Uhr z.B. aussieht wie die EchteMengenlehreuhr Uhr
(siehe http://de.wikipedia.org/wiki/Mengenlehreuhr) wie sie früher am Kudamm (Kurfürstendamm) stand,

http://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Mengenlehreuhr.jpg/180px-Mengenlehreuhr.jpg
dann brauchen wir schon 23 Eingänge (4x5h Anzeige, 4x 1h Anzeige, 11x 5Min Anzeige und 4x 1Min. Anzeige).
Dür die Darstellung als Digitaluhr mit Stunden und Minuten kommen dann nochmal 4x7 Segmente 28 Ausgänge hinzu.

Ich fasse mal zusammen: 23+28= 51 I/O-Pins !!!
Hinzu käme dann noch 23 Optokoppler, da vermutlich deine Mengele Uhr mit anderen Spannungen arbeitet als der Prozessor. Gut für die 7-Segment Anzeige (LED) kämen wir zur Not noch ohne Treiber aus.

Das hieße dann mindestens einen ATmega128!

Und der ganze Aufwand nur weil Du nicht mit Multiplexen arbeiten willst.
Alternativ könnte man auch mit einem kleineren Prozessor auskommen und dafür mit mehreren I²C Portexpandern (PCF 8574) sowohl auf der Eingangs als auch auf der Ausgangsseite.

Also dann ein ATmega8 4xPCF8574 für die 7-Segment Anzeigen, 4xPCF8574 als Eingang + Optokoppler.

Der Ganze Aufwand nur für eine Uhr?
Ist das immer noch Dein Ernst?

Ich rechne mal zusammen




1x ATmega 8 ca. € 1,35 = 1,35
8x PCF8574 ca. € 1,25 = 10,00
6x 4-fach Optokoppler (IQL74) ca. € 0,95 = 5,70
4x 7-Segment Anzeigen ca. € 0,55 = 2,20
1x Steckernetzteil ca. € 8,40 = 8,40


Dann Kommt noch die Platine das löten und diversers anderes Kleinmaterial (Kondensatoren, Spannungsregler, Widerstände uws. usf.), das Programm dazu.
Und das alles nur um eine Umsetzung der Anzeige einer Uhr zu erhalten.

so daumen mal Pi etwa 30 bis 40 Euro's, etwas heftig oder?

Mit Pic's kenn ich mich nicht aus, aber daer Aufwand (das drumherum) bleibt Dir jedoch kaum erspart. (anstelle des ATmega dann eben 'nen PIC)

ooops, wohl etwas üner das Ziel hinaus geschossen....

So Angepasst:
10 Bit Eingänge, das wären dann eben "nur" 3 der Optokoppler


1x PIC 16Fxxx ca. € x,yy = x,yy
8x PCF8574 ca. € 1,25 = 10,00
3x 4-fach Optokoppler (IQL74) ca. € 0,95 = 2,85
4x 7-Segment Anzeigen ca. € 0,55 = 2,20
1x Steckernetzteil ca. € 8,40 = 8,40

TommyP87
02.10.2009, 15:08
ich wertde jetzt mal versuchen das ganze mit 2 pals oder gals zu lösen,
die stunden funktionieren damit auf jeden fall.
bei den minuten muss ich evtl dann was größeres nehmen.

am montag im geschäft mal schauen was da so geht =)


Grüße

the_Ghost666
05.10.2009, 10:56
Es wurd noch nicht genannt meine ich. Bei Sprut.de findest du den Code für eine Multiplexing-Ansteuerung einer 7-Seg Anzeige als Lernbeispiel. Wenn du natürlich nicht Multiplexen möchtest, musst du entweder genug Pins haben, oder mit Latches arbeiten. Ich finde da Pals schon etwas mit Kanonen auf Spatzen geschossen ;)
Ich habe für eine Binär Uhr vor einiger Zeit die Anzeige gemacht, dabei hab ich LEDs, ULN2003 als Treiber und die 74HC164 Schieberegister genommen. Da kommst du also mit 2 Pins völlig aus und kannst mit einem Unterprogramm deine Zeitanzeige hochschieben. Brauchst halt für jedes Segment ein Schieberegister und die gibts bei Reichelt für 25ct das Stück. Gibts auch im schnuckeligen SMD Gehäuse (so hab ich die verbaut).