Frage:
Ist es möglich, ein 2 x 16 LCD-Display mit Logikgattern anzusteuern? (Ohne Computer)
Jardel B.
2018-02-08 20:32:04 UTC
view on stackexchange narkive permalink

Ich möchte eine Schaltung mit Logikgattern erstellen, die eine Meldung auf dem LCD-Display druckt (2 x 16).Irgendeine Idee?Ich möchte wissen, wie man das "von Hand" macht.wie früher.

Kann ich aus Logikgattern, die an eine Tastatur angeschlossen sind, eine Schaltung aufbauen, die beim Drücken einer Taste das Zeichen auf dem LCD anzeigt?

Wenn Sie über HD44780-basierte Displays sprechen, wurden diese nie "von Hand" angesteuert, sondern für den Motorola MCU-Bus entwickelt.Es ist natürlich nicht unmöglich, aber Katzen auch nicht zu hüten.
Kann ich aus Logikgattern, die an eine Tastatur angeschlossen sind, eine Schaltung aufbauen, die beim Drücken einer Taste das Zeichen auf dem LCD anzeigt?
Wie ich schon sagte, ja, das ist möglich.
Sie können eine CPU mit Logikgattern erstellen.Ein verrücktes Beispiel finden Sie unter [big mess o'wires] (https://www.bigmessowires.com/bmow1/).Also, ja, Sie können auch ein 2x16 LCD fahren.Beachten Sie jedoch, dass Sie wahrscheinlich einige Wochen brauchen werden.Und es gibt wahrscheinlich interessantere Dinge, die mit dieser Zeit zu tun haben (ich urteile nicht, aber ich urteile immer noch ein bisschen ...).
Betreff: "Ohne Computer."Ich denke, das hängt davon ab, was "Computer" Ihrer Meinung nach bedeutet.Ich habe in der Vergangenheit mit mehr als einem "Computer" gearbeitet, der überhaupt keinen Mikroprozessor hatte.Es war nichts in der Schachtel als ein großer alter Haufen von Logikgattern, die so miteinander verbunden waren, dass sie Anweisungen und Operanden aus dem Speicher abriefen, die Anweisungen dekodierten, sie formulierten, Ergebnisse zurück in den Speicher schrieben - genau wie wasein realer Computer würde reichen.https://c1.staticflickr.com/9/8278/8942466121_db0327bc2e_b.jpg
Sie können dies in Minecraft tun: https://www.youtube.com/watch?v=aQqWorbrAaY
In den "alten Zeiten" gab es kein 2x16-LCD mit integriertem Controller, Treiber und handlichem 8-Bit-Bus.Was Sie vorschlagen, ist ein bisschen wie der Versuch, einen Automobilcomputer für einen Motor mit Kraftstoffeinspritzung aus Relais und Vakuumröhren zu bauen.Niemand hat das jemals so gemacht - alte Autos hatten Vergaser und überhaupt keine Computer.Ein 2x16 LCD-Panel ist für den Betrieb über einen Mikrocontroller ausgelegt.Wenn Sie ein Oldschool-Projekt wünschen, nehmen Sie einige 7-Segment-BCD-Indikatoren und beginnen Sie von dort aus.
Das Anschließen an eine PS / 2- oder USB-Tastatur wäre schwieriger als das Ansteuern eines 2x16-LCD.Wenn ich es mit einer anderen Logik als einem Mikro machen müsste, würde ich mir zuerst ein paar parallele ROM (Flash) -Chips ansehen und Zähler kommen, um einige Zustandsmaschinen zu bauen.GALs und FPGAs könnten helfen, und es könnte erforderlich sein, auf einer x.y-Matrixtastatur zu bestehen.Diskrete Logik wird viel Arbeit sein, aber nicht unmöglich.
Fünf antworten:
Michael Karas
2018-02-08 21:12:55 UTC
view on stackexchange narkive permalink

Es ist möglich, aus Logikgattern eine Schaltung zu erstellen, die Zeichen auf einem 16x2-LCD-Zeichenmodusmodul initialisieren und anzeigen kann. Es ist auch möglich, aus Logikgattern eine Schaltung zu erstellen, die die Ausgabe einer Standardmatrixtastatur oder sogar einer PS2-Tastatur aufnehmen und diese Tastaturdaten an das LCD-Modul weiterleiten kann.

Das Wichtigste ist jedoch, dass Sie, wenn Sie nur die Frage stellen, implizieren, dass Sie am Anfang der Lernkurve stehen, wie Sie ein solches Projekt durchführen. Ich schlage vor, wenn Sie etwas aus Logikgattern bauen möchten, beginnen Sie mit etwas viel Einfacherem, bis Sie eine Vorstellung davon bekommen, worum es beim Zusammenstellen von Dingen geht, um diesen Typ zu machen. Erst dann können Sie Ihre eigene Frage beantworten, warum es möglicherweise nicht sinnvoll ist, eine Tastatur und ein LCD-Modul mit dedizierten Logikgattern zu verbinden. Es würde eine gute Anzahl von Logikgattern erfordern, um dies zu erreichen, und sicherlich viel Zeit und Mühe, um zu einem guten Ergebnis zu gelangen. Sobald Sie alles abgeschlossen haben, werden Sie fast sofort darüber nachdenken, wie Sie die Anzeige so gestalten können, dass eine Zeichenfolge angezeigt wird, und möglicherweise sogar die angezeigte Zeichenfolge "bearbeiten" können. Jetzt wird die Implementierung des Logikgatters zum Albtraum eines ganz neuen Projekts.

Es gibt also einen Grund, warum die ganze Welt dazu übergegangen ist, solche Dinge mit einem Mikrocontroller zu tun.Sehr einfache Schnittstellen werden verwendet, um Dinge wie Matrixtastaturen und 16x2-LCD-Module mit den GPIO-Schnittstellen des Mikrocontrollers zu verbinden.Diese einfachen Schnittstellen sind einfach zu erstellen und zu testen, um sicherzustellen, dass sie funktionieren.Einmal installiert, wird es zu einer einfachen Software-Aufgabe, die logische Verbindung zwischen der Tastatur und dem LCD-Modul herzustellen.Und diese Software kann so einfach sein wie das ursprüngliche Entwurfsszenario, nach dem Sie gefragt haben, ob Sie nur eine einzelne Eingabe von der Tastatur nehmen und auf dem Display anzeigen möchten, oder sie kann so angepasst werden, dass fast alles auf dem Display angezeigt wird ... zum Beispiel aZählen Sie, ob wie oft eine Taste gedrückt wurde ... oder zeigen Sie an, wie lange eine Taste gedrückt wurde ... oder zeigen Sie eine gesamte Benutzeroberfläche an, die Ihr Gerät bedient.

Es ist möglich, aus Logikgattern, die ein Computer sind, eine Schaltung zu machen :-)
@JardelB.Wenn Ihnen im StackExchange-Netzwerk eine Antwort am meisten geholfen hat, akzeptieren Sie sie, indem Sie auf ein Häkchen links davon klicken.Dieser Akt dankt dem Autor automatisch, indem er ihm einen positiven Ruf verleiht.
Adam Davis
2018-02-08 22:35:53 UTC
view on stackexchange narkive permalink

Ja. Sie benötigen mehrere Blöcke, damit es funktioniert:

  1. Sie benötigen einen LCD-Treiberblock. Das LCD soll im 4-Bit- oder 8-Bit-Modus beschrieben werden. Ich empfehle 8-Bit für diese Anwendung. Bei jedem Schreibvorgang werden die Daten auf den Bus gelegt und die E-Leitung gedreht. Für dieses System müssen Sie nur auf das LCD schreiben, damit die RD / WR-Leitungen hoch oder niedrig verdrahtet werden können, um die Anzeige in den Schreibmodus zu versetzen.
  2. Sie müssen das LCD beim Einschalten initialisieren, indem Sie eine Reihe von Bytes an das LCD senden. Dies beinhaltet irgendeine Art von Speicher, sei es eine Diodenmatrix oder ein Rom. Beim Einschalten muss ein Zähler sequentielle Adressen an den "Speicher" senden, dessen Ausgabe an den LCD-Treiberblock geleitet wird.
  3. Sie benötigen einen Tastaturleseblock. Ich schlage vor, dass Sie eine PS2-Tastaturschnittstelle verwenden, wenn Sie eine PC-Tastatur verwenden möchten. Sie können jedoch auch eine eigene Tastenbank und ein eigenes Scansystem erstellen, wenn Sie möchten. Wenn Sie PS2 verwenden, müssen Sie eine Uhr generieren, serielle Daten lesen und diese dann in parallele Daten konvertieren.
  4. Sie benötigen einen Tastaturkonvertierungsblock. Dadurch wird der Tastaturcode in ein Zeichen umgewandelt, das auf dem LCD angezeigt werden kann. Dies beinhaltet einen Speicher ähnlich dem Initialisierungsblock, aber Sie benötigen mindestens eine Speicherzelle für jeden Schlüssel, für die eine sehr große Diodenmatrix oder ein ROM erforderlich ist. Wenn Sie klug sind, können Sie ein ROM für beide Funktionen verwenden.
  5. ol>

    Wie andere bereits betont haben, ist dies alles nicht trivial und erfordert viele Logikchips für jeden Abschnitt. Dies ist jedoch möglich, und wenn Sie erfolgreich sind, haben Sie ein sehr schwieriges Projekt abgeschlossen.

Wenn Sie die Definition von Logikgattern auf virtuelle Gatter in einem FPGA erweitern, wäre dies nicht schwierig.Sie finden vorab geschriebene HDL-Blöcke für PS / 2-Ein- und HD44780-Ausgänge oder sogar VGA-Ausgänge.
Michael Karas
2018-02-08 21:23:55 UTC
view on stackexchange narkive permalink

Lassen Sie mich noch eine weitere Einstellung dazu hinzufügen. Wenn Sie wirklich lernen möchten, was aus logischer Sicht erforderlich ist, um eine Tastatur mit einem LCD-Modul mit einem bestimmten dedizierten Logikdesign zu verbinden, kann ich eine Reihe von Dingen sagen ...

  1. Es ist immer toll zu lernen, wie man Dinge auf der Ebene der Schrauben und Muttern macht. Dinge, die auf diese Weise gelernt wurden, bleiben Ihnen ein Leben lang erhalten.
  2. Anstatt sich dem mit der Idee zu nähern, einen Globus aus Drähten und Logikgattern aufzubauen, suchen Sie bei eBay nach einer gebrauchten FPGA-Evaluierungskarte mit Tastatur und LCD-Modul. Diese werden mit den FPGA-Pins verbunden. Mithilfe der FPGA-Entwurfsressourcen können Sie dann alles über den Logikentwurfsprozess erfahren, um die gewünschte Funktionalität zu erzielen.
  3. Sie werden schnell feststellen, dass fast alle Leute, die eine FPGA-Evaluierungskarte des oben beschriebenen Typs verwenden, ihr System so gestalten, dass es einen "Softcore" -Mikrocontroller in das FPGA einbindet, der dann einen Softwarealgorithmus zur Bedienung der Tastatur und des Tastaturs ausführt LCD-Modul-Schnittstellen !!
  4. ol>
Adam Eberbach
2018-02-09 09:44:14 UTC
view on stackexchange narkive permalink

Auf jeden Fall, aber Sie würden sehr viele davon brauchen!

Eine nützliche Ressource könnte Code von Charles Petzold sein.Er spricht darüber in seinem Interview hier.

In diesem Buch wird zunächst untersucht, wie Sie Informationen in einem einzigen Bit übertragen können, dann zwei Bits (d. h. eines auf dem Landweg, zwei auf dem Seeweg) und dann mehr.Dann wird die Logik untersucht und wie Gates mit Relais implementiert werden können. Anschließend werden immer komplexere Bausteine wie Flip-Flops und Addierer verwendet.Sie erfahren, wie Sie Verzögerungen, Teiler, Multiplexer, Speicher und im Grunde alles implementieren, was Sie benötigen.Wenn es eine Ressource gibt, die von nichts ausgeht und einen ganzen Computer "von Hand" baut, ist dies wahrscheinlich die richtige.

Sean Houlihane
2018-02-09 15:01:24 UTC
view on stackexchange narkive permalink

Ja, das ist möglich. Es ist eine ziemlich komplexe Aufgabe - selbst wenn Sie sie in FPGA implementiert haben, würde es wahrscheinlich eher Wochen als Tage dauern.

Ich frage mich, was Sie aus einem Projekt dieser Komplexität lernen werden, das über Ihre Erfahrung hinausgeht, dasselbe mit einem mcu zu tun (oder etwas Einfacheres oder einfach die Welt mit Ihrem mcu zu verbinden).

Ungefähr 1986 baute ich einen "Lift-Simulator" mit ein paar 8x8-LED-Arrays, einigen Zählerchips und einem riesigen Array von Dioden. Dies brachte mir ein wenig über Systemdesign, Logikminimierung und einige Zustandsmaschinenkonzepte bei, aber nicht viel über Schaltungsdesign.

Sicher, es war eine beeindruckende Demo (die Schule hat es behalten und herausgebracht, um es an Tagen der offenen Tür zu zeigen), und zu der Zeit war es nicht so weit vom „Stand der Technik“ entfernt.

Wenn ich heute dasselbe mache, würde ich eine MCU-Plattform verwenden (das Mikrobit hat sogar die Matrix eingebaut), und die Aufgabe wäre Software. Wenn ich ein FPGA verwenden würde, würde ich fast dieselbe Software in Verilog schreiben. Die Verwendung von diskreter Logik oder sogar Diodenarrays bringt Ihnen heute veraltete Fähigkeiten bei (ja, ich habe einen 144-MHz-Ventilverstärker gebaut, daher schätze ich, dass dies manchmal relevant sein kann).

Der Unterschied zwischen dem Aufzugssimulator und dem Maßstab der Entwürfe, an denen ich heute arbeite (100.000 Tore, 5-10 meiner Entwürfe), ist wirklich die Abstraktionsebene. Teilen Sie das Design in Blöcke auf, modellieren Sie die Interaktionen und machen Sie die richtige Struktur. Bei der Implementierung auf niedriger Ebene geht es darum, etwas wiederzuverwenden, was zuvor getan wurde. Das funktionale Design basiert für seine Leistung auch auf einem komplexen Software-Dekomprimierer, um den von mir generierten Datenstrom zu rekonstruieren.

Wenn Sie sich darauf beschränken, nur in Logik zu implementieren, verpassen Sie einen massiven erfinderischen Schritt, bei dem Software Ihre Arbeit problemlos für Sie erledigen kann (triviales Beispiel: Sortieren einer Reihe von Konfigurationsadresswerten in aufsteigender Reihenfolge, um eine Prioritätsregel anzuwenden.Sicher, Hardware kann es , aber die Kosten für die Implementierung sind nicht trivial und auch sinnlos - Software, die mein Design verwendet, kann dies kostenlos tun.

Eine kleine Menge an Rechenleistung, die in ein Gerät eingebettet ist, ist jetzt nahezu kostenlos. Sie können häufig die Produktionskosten senken, indem Sie eine MCU hinzufügen (und mehr Funktionen erhalten, die möglicherweise einen echten Mehrwert bieten oder nicht).



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...