Hallo. Folgendes Problem: Ich möchte einen Rückwärtszähler realisieren der von 90 auf 0 zählt. Dazu verwende ich zwei 7 Segment Anzeigen, sowie JK Flips Flops und BCD zu 7 Segment Decoder. Es geht mir nur um den Schaltungsaufbau, nicht um irgendwelche ICs oder Bauteile. Bis jetzt habe ich es soweit hinbekommen, allerdings fängt er bei 11 an zu zählen, geht dann auf 10 09 08 07 ... und dann auf 99 98 97. Ich würde gerne einen Taster einbauen, damit ich auf Knopfdruck den Zähler starten kann. Im Anfangszustand soll 90 da stehen, wenn ich den Knopf drücke, erst nach einem Taktzyklus (bei mir eine Sekunde) auf 89.. Wenn er bei 00 angekommen ist soll er einfach stehen bleiben. Das ganze soll später genau 90 Minuten gehen, ich verwende Sekunden, um es zu testen. In den Screenshots ist auch die Zustandsübergangstabelle. Das Schaltbild ist etwas unübersichtlich. Das Programm ist nicht so gut. Ich habe leider nirgends ein Hinweis gefunden, habe mich deswegen hier im Forum registriert. Vielen Dank im Vorraus.
Hat das irgendeinen akademischen Grund, warum du das so realisieren willst? Dann, und nur dann lohnt es sich damit zu beschäftigen. Soll es was tatsächlich prkatisches werden, sind das 30 Zeilen Code in einem Tiny2313, geschrieben in ner halben Stunde. Und die Platine ist auch viel schneller fertig als mit deinem TTL-Kram.
:
Bearbeitet durch User
H.Joachim Seifert schrieb: > Hat das irgendeinen akademischen Grund, warum du das so realisieren > willst? Dann, und nur dann lohnt es sich damit zu beschäftigen. > > Soll es was tatsächlich prkatisches werden, sind das 30 Zeilen Code in > einem Tiny2313, geschrieben in ner halben Stunde. Ja, aber nur für jemandem der vorher mindestens ein Vierteljahr µC-Programmierung gelernt hat. Auf jeden Fall liesse sich obiges Projekt auch recht einfach mit fertigen Zähler-ICs verwirklichen. Gruss Harald
In der tat. Also ich wollte bewusst ohne programmieren machen, einfach nur um zu wissen, ob ich das machen kann. Ich habe ein Semester Digitaltechnik hinter mir, jetzt will ich das in die Praxis umsetzen.
David G. schrieb: > In der tat. Also ich wollte bewusst ohne programmieren machen, einfach > nur um zu wissen, ob ich das machen kann. Ich habe ein Semester > Digitaltechnik hinter mir, jetzt will ich das in die Praxis umsetzen. Schau in den Tietze/Schenk. Dort sind solche Zähler gut beschrieben. (Jedenfalls in meiner zweiten Auflage)
Harald Wilhelms schrieb: > H.Joachim Seifert schrieb: > >> Hat das irgendeinen akademischen Grund, warum du das so realisieren >> willst? Dann, und nur dann lohnt es sich damit zu beschäftigen. >> >> Soll es was tatsächlich prkatisches werden, sind das 30 Zeilen Code in >> einem Tiny2313, geschrieben in ner halben Stunde. > > Ja, aber nur für jemandem der vorher mindestens ein Vierteljahr > µC-Programmierung gelernt hat. Auf jeden Fall liesse sich obiges > Projekt auch recht einfach mit fertigen Zähler-ICs verwirklichen. > Gruss > Harald Ich will das bevor ich mir Zähler ICs kaufe und das Projekt verdrahte und verlöte wissen, ob es möglich ist und wie es funktioniert. Ich will das lieber erst mal im Detail wissen. Außerdem hat mein kleines Simulationsprogramm nicht viel zur Verfügung. Es gibt ein Zähler, allerdings asynchron.
Ist das bislang nur simuliert? Die Takterzeugung für die 10er-Stelle wird so nicht gehen. Durch Laufzeitunterschiede ergibt sich praktisch immer ein Puls zum ungewünschten Zeitpunkt und wenn auch nur ein sehr kurzer. Da muss zumindest der Takt der ersten Stelle irgendwie mit rein. Mag in der Simulation noch gehen in der Praxis kaum. Deer Startwert ist hier eigentlich Zufall. Und wie zählt er genau? Nach 07 kommt 99? Kann eigentlich nicht sein, auch wenn ich mir die Logik nicht ganz genau angesehen habe. Das untere Bit sollte sich bei jedem Takt ändern. Zum Starten auf 90 must du einen auf die J/K-Eingänge entsprechende Signale legen und dann einmal takten. Ohne Takt geht bei JK-FFs nichts. Und die Null musst du erkennen und dann entweder den Takt unterdrücken oder deine Zustandstabelle entsprechend erweitern, so dass nach 00 wieder 00 kommt.
Harald Wilhelms schrieb: > David G. schrieb: >> In der tat. Also ich wollte bewusst ohne programmieren machen, einfach >> nur um zu wissen, ob ich das machen kann. Ich habe ein Semester >> Digitaltechnik hinter mir, jetzt will ich das in die Praxis umsetzen. > > Schau in den Tietze/Schenk. Dort sind solche Zähler gut beschrieben. > (Jedenfalls in meiner zweiten Auflage) Ich weiß wie Zähler funktionieren, ich krieg es aber einfach nicht hin. Ich weiß nicht, warum mein Zähler bei 11 einfängt, und wie ich das ändern kann. Außerdem will ich ja einen Taster einbauen. Ich habe schon einiges versucht, es aber einfach nicht hinbekommen.
David G. schrieb: > Ich > würde gerne einen Taster einbauen, damit ich auf Knopfdruck den Zähler > starten kann. Im Anfangszustand soll 90 da stehen, wenn ich den Knopf > drücke, Um den Startwert festlegen zu können wäre ein Preset und Clear-Eingang des FFs praktisch. http://www.ti.com/lit/ds/symlink/sn74hc112.pdf Die verbindest du so mit deinem Starttaster, dass der gewünsche Startwert eingestellt wird.
Uwe Nagel schrieb: > Ist das bislang nur simuliert? > Die Takterzeugung für die 10er-Stelle wird so nicht gehen. Durch > Laufzeitunterschiede ergibt sich praktisch immer ein Puls zum > ungewünschten Zeitpunkt und wenn auch nur ein sehr kurzer. Da muss > zumindest der Takt der ersten Stelle irgendwie mit rein. > Mag in der Simulation noch gehen in der Praxis kaum. > Deer Startwert ist hier eigentlich Zufall. > Und wie zählt er genau? Nach 07 kommt 99? Kann eigentlich nicht sein, > auch wenn ich mir die Logik nicht ganz genau angesehen habe. Das untere > Bit sollte sich bei jedem Takt ändern. > Zum Starten auf 90 must du einen auf die J/K-Eingänge entsprechende > Signale legen und dann einmal takten. Ohne Takt geht bei JK-FFs nichts. > Und die Null musst du erkennen und dann entweder den Takt unterdrücken > oder deine Zustandstabelle entsprechend erweitern, so dass nach 00 > wieder 00 kommt. Ist alles nur simuliert. Nach 07 kommt 06 05 04 03 02 01 00 99 98,... Die zweite Zahl, also die Zehner, hatte ich davon abhängig gemacht, wenn die andere Zahl 0 wird.
Achim S. schrieb: > David G. schrieb: >> Ich >> würde gerne einen Taster einbauen, damit ich auf Knopfdruck den Zähler >> starten kann. Im Anfangszustand soll 90 da stehen, wenn ich den Knopf >> drücke, > > Um den Startwert festlegen zu können wäre ein Preset und Clear-Eingang > des FFs praktisch. > > http://www.ti.com/lit/ds/symlink/sn74hc112.pdf > > Die verbindest du so mit deinem Starttaster, dass der gewünsche > Startwert eingestellt wird. Das habe ich auch schon gelesen, Problem ist, ich kenne nur die normalen JK FlipFlops und mein Simulationsprogramm auch.
Also erst mal vielen Dank für die schnellen Antworten, ich denke die Sache wird komplizierter als ich dachte (mein Digitaltechnik wissen reicht bei weitem nicht aus). Die Pläne von TI von den ICs sind für einen Neuling schwierig. Ich dachte, ich kann meinen Schaltplan einfach um ein paar Drähte erweitern und schon würde alles stimmen. Ich denke, das kann ich nicht mit meinem Logik Simulator realisieren. Gibt es noch eine andere Möglichkeit, zwei Segmentanzeigen von 90 auf 0 zählen zu lassen, wenn es geht erst mal ohne programmieren. Wenn das allerdings zu aufwendig ist, werde ich es programmieren, aber damit kenne ich mich zu wenig aus (außer Arduino). Kann man aus jedem JK FlipFlop ein JK FlipFLop mit CLR Eingang erzeugen oder sind das spezielle FlipFlops?
Harald Wilhelms schrieb: > H.Joachim Seifert schrieb: > >> Hat das irgendeinen akademischen Grund, warum du das so realisieren >> willst? Dann, und nur dann lohnt es sich damit zu beschäftigen. >> >> Soll es was tatsächlich prkatisches werden, sind das 30 Zeilen Code in >> einem Tiny2313, geschrieben in ner halben Stunde. > > Ja, aber nur für jemandem der vorher mindestens ein Vierteljahr > µC-Programmierung gelernt hat. Auf jeden Fall liesse sich obiges > Projekt auch recht einfach mit fertigen Zähler-ICs verwirklichen. > Gruss > Harald Was wäre denn so ein fertiger Zähler IC? Ich kenn mich damit noch zu wenig aus. Gibt es da ein Link? Wie verdrahte ich dann die Zähler zusammen? In meinem Schaltbild habe ich ja auch zwei Zähler. Oder ist das ein Zähler, der von 90 auf 0 zählt als fertiges Bauteil?
Poster schrieb: > Da müsste ein 74HCT190 passen. Einer pro Stelle. Ok. Und für den Takt? Soll ja alle minute was passieren. Und der soll erst starten, wenn ich den Taster drücke. Und dann bei 90. wie verschalte ich die ICs hintereinander? Soll der Takt dann von dem anderen IC abhängen, oder sollen die den gleichen Takt haben?
Oh je, das ist jetzt locker 30 Jahre her das ich mit so was rumgebastelt habe. Habe die Zähler früher für Knightrider Lauflichter verwendet :) Der Takt geht auf den "Einer" Zähler. Der produziert einen Überlauf der auf den "Zehner" Zähler geht. Zum Takt findest du hier bestimmt tolle Schaltungen mit dem 555. Zum starten kannst du dir bestimmt was einfallen lassen mit einen FF das durch den Taster gesetzt wird und durch den Zähler zurück wenn er 00 erreicht.
Poster schrieb: > Oh je, das ist jetzt locker 30 Jahre her das ich mit so was rumgebastelt > habe. > Habe die Zähler früher für Knightrider Lauflichter verwendet :) > > Der Takt geht auf den "Einer" Zähler. Der produziert einen Überlauf der > auf den "Zehner" Zähler geht. > > Zum Takt findest du hier bestimmt tolle Schaltungen mit dem 555. > > Zum starten kannst du dir bestimmt was einfallen lassen mit einen FF das > durch den Taster gesetzt wird und durch den Zähler zurück wenn er 00 > erreicht. Ok vielen Dank. Letzte Frage: der Überlauf wäre doch dann so, wie in meinem schaltbild, oder nicht? Also wenn alle Leitungen 0 sind, dass dann der zweite Zähler startet.
Schau mal in das Datenblatt, da sind Beispiele dabei wie man die verschaltet. Je nach Zählrichtung wird da eine Ausgabe gemacht bei 0->9 oder 9->0 http://www.digchip.com/datasheets/parts/datasheet/364/74HCT190-pdf.php
... bei den Inputs (zumindest dem clock Input) auf genügende Flankensteilheit und ein prellfreies Signal achten. Das erreichst Du am einfachsten mit einem Schmitt Trigger, z.B dem 74HC14 oder 74HC132 mit einem vorgeschalteten RC. ... ausserdem einen Aufbau mit sauberer Masseführung und die Speisung bei jedem IC mit einem 100n abblocken.
David G. schrieb: >> Da müsste ein 74HCT190 passen. Einer pro Stelle. Wohl eher 74x192 > Ok. Und für den Takt? Soll ja alle minute was passieren. Dann brauchst du irgendwas, das dir einen Minutentakt erzeugt. Wie genau solls den sein? Reicht Netzfrequenz (50Hz) geteilt durch 3000? Sonst halt ein Quarz und viele Teiler. > Und der soll erst starten, wenn ich den Taster drücke. Dann brauchst du ein Flipflop, das du mit dem Taster setzt und das seinerseits den Zähler sperrt oder freigibt. > Und dann bei 90. Der '192 hat einen Ladeeingang und Daten-Eingänge A-D. Den kannst du so auf jeden beliebigen Startwert setzen. Für eine Ein-Knopf-Bedienung würde man aus dem entprellten Tastersignal einen kurzen Impuls ableiten (Monoflop) der den Vorteiler rücksetzt (damit der nach genau einer Minute den ersten Zählimpuls abgibt) und mit diesem Impuls auch die Zähler laden. Den Startwert von 90 kann man ja fest verdrahten. > wie verschalte ich die ICs hintereinander? Soll der Takt dann von dem > anderen IC abhängen, oder sollen die den gleichen Takt haben? Mit dem '192 hast du einen dezidierten Eingang zum Abwärtszählen und einen ebenso dezidierten Ausgang zum Kaskadieren mehrerer Zähler. Aber wie Vorredner schon bemerkten, ist sowas heute wesentlich einfacher mit einem µC zu erledigen. Erst recht, wenn du noch eine Zeitbasis brauchst. XL
Axel Schwenke schrieb: > Aber wie Vorredner schon bemerkten, ist sowas heute wesentlich einfacher > mit einem µC zu erledigen. Erst recht, wenn du noch eine Zeitbasis > brauchst. > > > XL Danke erst mal für den ausfürlichen Beitrag. Da ich bis jetzt nur Arduinios mit C programmiert habe, habe ich keine Ahnung von weiteren µC. Erst recht nicht, wie man diese programmiert. Da brauch man bestimmt irgendeine Vorrichtung, damit man die vom Computer programmiert.
Ich werde das vermutlich mit dem Arduino Nano machen und zwei BCD zu 7 Segment Decoder. Dann brauch ich am Arduino 8 pins für die beiden Decoder, und einen für den Taster. Ich denke das ist das einfachste, in C kann man das relativ leicht programmieren denke ich. Mit FlipFlops und Gatter Logik ist das schon ziemlich aufwändig. Das ganze dann an ne 9V Batterie und fertig. Kann man BCD Decoder ohne weiteres direkt an den Adruino anschließen? Ich würde dann jeweils 4 Ausgänge vom Arduino im BCD Code ausgeben, und den Decoder den Rest machen lassen. Geht das?
Wofür Dekoder? Kannst die Anzeigen doch direkt vom Arduino ansteuern. Die Siebensegmentdekodierung machst du im Prozessor. Braucht zwar 14 Ausgänge, aber die hast du ja.
nimmst 2 Transistoren, und einen ULN2803. Dann brauchst du nur 9 Pins und multiplext das ganze...ist günstiger, du kannst alle Segmente ansteuern wie du willst und brauchst keine spezifischen ICs... Wenn du das garnicht willst, nimmst halt nur einen BCD 7.Segm. Dekoder und die 2 Transistoren, dann brauchst nur 6 Pins und ein IC weniger als bei deinem Vorhaben... JJ
H.Joachim Seifert schrieb: > Wofür Dekoder? Kannst die Anzeigen doch direkt vom Arduino ansteuern. > Die Siebensegmentdekodierung machst du im Prozessor. Braucht zwar 14 > Ausgänge, aber die hast du ja. Ja aber dann brauch ich ja noch einen für den Taster, un der ist dann nicht mehr Übrig. Außerdem habe ich nicht so eine große Programmiererfahrung, und wenn ich einen BCD zu 7 Segment Decoder kaufen kann, brauch ich ihn nicht programmieren.
vielleicht magst auch mal hier rein schauen: https://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige JJ
>>Außerdem habe ich nicht so eine große
Programmiererfahrung,
Dann ist deine Lösung schon gut und auch umsetzbar ´wie du beschrieben
hast...
Welchen Decoder wolltest denn nehmen?
JJ
Jens schrieb: > vielleicht magst auch mal hier rein schauen: > > https://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige > > JJ Danke, die Seite habe ich auch schon entdeckt. Vielleicht ist es ohne BCD Decoder doch besser, mal sehen.
Jens schrieb: >>>Außerdem habe ich nicht so eine große > Programmiererfahrung, > > Dann ist deine Lösung schon gut und auch umsetzbar ´wie du beschrieben > hast... > > Welchen Decoder wolltest denn nehmen? > > JJ Irgendeinen vom Conrad. Ich kenn mich da nicht aus, aber z.b. den: http://www.conrad.de/ce/de/product/169196/Low-Power-Schottky-TTL-SN-74-LS-XXX-Texas-Instruments-SN74LS47-Gehaeuseart-DIP-16-Ausfuehrung-BCD7-Segment-DekTreiber?ref=searchDetail
http://www.blitzlogic.com/7seg_90.htm was auch hilft: gehe mal bei google auf die Bildersuche und gebe als Suchwort: "7 segment avr" ein und schaue dich mal um... JJ
kenn ich denn die analogen Ausgänge als digitale Eingänge verwenden? Beim Arduino? Weil dann hätte ich ja genügend Anschlüsse, und könnte ohne einen externen Decoder auskommen, der nimmt ja auch zusätzlich Platz weg.
Axel Schwenke schrieb: > Wohl eher 74x192 Ja, steht ja schon im driiten Posting. Wenn man sich ein älteres Datenblatt des 74192 sucht, findet man dort auch meist die Innen- schaltung, die man durchaus aus Einzelflipflops und Gattern nach- bauen kann. Nur MS-Flipflops nur aus Gattern zu bauen wird schwierig. Gruss Harald
Na gut... Es ist immer gut, wenn man die volle Kontrolle über jedes einzelne Segment hat, das entfällt natürlich bei der Dekoderlösung. Auch ne Überlegung wert: 2x 4026, eigentlich ein Zähler mit Dekoder. Zähler löschen, gewünschte Anzahl von Takten ausgeben, fertig. Kommt mit 2 Leitungen aus.
kenne mich mit dem Teil nicht aus... Wenn du das Suchwort bei google mal um 7447 erweiterst ist das 6te Bild: http://www.mikrocontroller.net/attachment/1485/595_7448.JPG dann bist du hier unterwegs: Beitrag "Re: Achtung, Newbie, LED-Ansteuerung" JJ
David G. schrieb: > Ich werde das vermutlich mit dem Arduino Nano machen und zwei BCD zu 7 > Segment Decoder. Dann brauch ich am Arduino 8 pins für die beiden > Decoder, und einen für den Taster. Ich denke das ist das einfachste Dann halte dich aber ran. BCD-zu-7-Segment Decoder werden zunehmend schwerer erhältlich. 74x47 ist der Klassiker. Aber den würde man an einem Arduino stilecht nur als 74HC oder 74HCT verwenden wollen und da wurde letztens in einem anderen Thread festgestellt, daß der schwer erhältlich ist. 74LS gibts noch. Aber da braucht ein Decoder für sich allein schon mehr Strom als der ganze Arduino. Wenn ein µC im Spiel ist, bietet es sich natürlich an, die Dekodierung auch gleich in Software zu machen. Wenn man Pins sparen will, kann man die zwei Stellen ja multiplexen. XL
Axel Schwenke schrieb: > David G. schrieb: >> Ich werde das vermutlich mit dem Arduino Nano machen und zwei BCD zu 7 >> Segment Decoder. Dann brauch ich am Arduino 8 pins für die beiden >> Decoder, und einen für den Taster. Ich denke das ist das einfachste > > Dann halte dich aber ran. BCD-zu-7-Segment Decoder werden zunehmend > schwerer erhältlich. 74x47 ist der Klassiker. Aber den würde man an > einem Arduino stilecht nur als 74HC oder 74HCT verwenden wollen und da > wurde letztens in einem anderen Thread festgestellt, daß der schwer > erhältlich ist. 74LS gibts noch. Aber da braucht ein Decoder für sich > allein schon mehr Strom als der ganze Arduino. > > Wenn ein µC im Spiel ist, bietet es sich natürlich an, die Dekodierung > auch gleich in Software zu machen. Wenn man Pins sparen will, kann man > die zwei Stellen ja multiplexen. > > > XL Ich werde es mit einem Arduino Nano versuchen, ohne Decoder. Ich hatte gedacht, dass das in Software schwieriger zu lösen sei, als wenn ich einen externen decoder nehme, aber ich glaube das ist nicht so schwer. Ich muss mir ja nur einmal aufschreiben, wie die einzelnen Zahlen als 0 und 1 an den verschiedenen Ausgängen aussehen, aber da war ja hier auch schon ein link. Ich denke das bekomme ich hin, und da der Arduino Nano ziemlich klein ist, ist das insgesamt kleiner als wenn ich das alles mit IC Zählern machen würde.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.