Question:
Est-il possible de piloter un écran LCD 2 X 16 à l'aide de portes logiques? (Sans ordinateur)
Jardel B.
2018-02-08 20:32:04 UTC
view on stackexchange narkive permalink

Je souhaite créer un circuit utilisant des portes logiques qui imprime un message sur l'écran LCD (2 X 16).Une idée?Je veux savoir comment faire cela "à la main".comme au bon vieux temps.

Puis-je construire un circuit à partir de portes logiques reliées à un clavier qui lorsque j'appuie sur une touche, le caractère s'affiche sur l'écran LCD?

Si vous parlez d'écrans basés sur HD44780, ils n'ont jamais été conduits "à la main", ils ont été conçus pour le bus Motorola MCU.Ce n'est pas impossible bien sûr, mais l'élevage de chats non plus.
Puis-je construire un circuit à partir de portes logiques reliées à un clavier pour que, lorsque j'appuie sur une touche, le caractère s'affiche sur l'écran LCD?
Comme je l'ai dit, oui, c'est possible.
Vous pouvez construire une CPU avec des portes logiques.Voir [big mess o'wires] (https://www.bigmessowires.com/bmow1/) pour un exemple fou.Donc, oui, vous pouvez également conduire un écran LCD 2x16.Sachez cependant que cela vous prendra probablement quelques semaines.Et il y a probablement des choses plus intéressantes à faire avec cette fois (je ne juge pas, mais je juge encore un peu ...).
Re, "Sans ordinateur."Je suppose que cela dépend de ce que vous pensez que «ordinateur» signifie.J'ai travaillé avec plus d'un "ordinateur" dans le passé qui n'avait aucun microprocesseur.Il n'y avait rien dans la boîte, mais un gros vieux tas de portes logiques qui étaient reliées entre elles de telle manière qu'elles récupéraient les instructions et les opérandes de la mémoire, décodaient les instructions, les exécutaient, écrivaient les résultats en mémoire - tout comme quoiun ordinateur _real_ ferait l'affaire.https://c1.staticflickr.com/9/8278/8942466121_db0327bc2e_b.jpg
Vous pouvez le faire dans Minecraft: https://www.youtube.com/watch?v=aQqWorbrAaY
Dans «l'ancien temps», il n'y avait pas de LCD 2x16 avec un contrôleur intégré, un pilote et un bus 8 bits pratique.Ce que vous proposez, c'est un peu comme essayer de construire un ordinateur automobile pour un moteur à injection de carburant à partir de relais et de tubes à vide.Personne ne l'a jamais fait de cette façon - les vieilles voitures avaient des carburateurs et aucun ordinateur.Un panneau LCD 2x16 est ** conçu ** pour fonctionner via un microcontrôleur.Si vous voulez un projet oldschool, allez chercher des indicateurs BCD à 7 segments et partez de là.
Je pense que la connexion à un clavier PS / 2 ou USB serait plus difficile que de piloter un écran LCD 2x16.Si je devais le faire avec une logique autre qu'un micro, je regarderais d'abord quelques puces ROM parallèles (Flash) et viendrais des compteurs pour construire des machines à états.Les GAL et FPGA pourraient aider, insistant sur le fait qu'un clavier matriciel x.y pourrait être nécessaire.La logique discrète sera beaucoup de travail mais pas impossible.
Cinq réponses:
Michael Karas
2018-02-08 21:12:55 UTC
view on stackexchange narkive permalink

Il est possible de faire un circuit à partir de portes logiques qui seraient capables d'initialiser et d'afficher des caractères sur un module de mode caractère LCD 16x2. Il est également possible de créer un circuit à partir de portes logiques qui pourraient prendre la sortie d'un clavier matriciel standard ou même d'un clavier de type PS2 et acheminer ces données de clavier vers le module LCD.

La grande chose à laquelle il faut cependant penser est qu'en posant simplement la question, vous sous-entendez que vous êtes au début de la courbe d'apprentissage sur la façon de faire un projet comme celui-ci. Je suggère que si vous voulez construire quelque chose à partir de portes logiques, vous commencez par quelque chose de beaucoup plus simple jusqu'à ce que vous ayez l'idée de ce qui est impliqué dans la mise en place de choses pour faire ce type de chose. Ce n'est qu'alors que vous commencerez à être en mesure de répondre à votre propre question sur les raisons pour lesquelles il peut ne pas avoir beaucoup de sens de connecter un clavier et un module LCD avec des portes logiques dédiées. Il faudrait une bonne quantité de portes logiques pour y parvenir et certainement beaucoup de temps et d'efforts pour arriver à un bon résultat. Une fois que vous avez tout terminé, vous commenceriez presque immédiatement à réfléchir à la façon dont vous pourriez faire en sorte que l'affichage montre une chaîne de caractères et éventuellement même avoir la possibilité de "modifier" la chaîne affichée. Désormais, l'implémentation de la porte logique devient le cauchemar d'un tout nouveau projet.

Il y a donc une raison pour laquelle le monde entier est passé à faire des choses comme celle-ci avec un microcontrôleur.Des interfaces très simples sont utilisées pour connecter des éléments tels que des claviers matriciels et des modules LCD 16x2 aux interfaces GPIO du microcontrôleur.Ces interfaces simples sont faciles à construire et à tester pour s'assurer qu'elles fonctionnent.Une fois en place, il devient un simple travail logiciel de fournir la connectivité logique entre le clavier et le module LCD.Et ce logiciel peut être aussi simple que le scénario de conception original que vous avez demandé de prendre simplement une seule entrée du clavier et de l'afficher sur l'écran ou il peut être adapté pour afficher presque tout sur l'écran ... par exemple en montrant uncomptez si le nombre de fois qu'une touche a été enfoncée ... ou affichez combien de temps une touche a été enfoncée ... ou affichez toute une interface utilisateur qui fait fonctionner votre appareil.

Il est possible de faire un circuit à partir de portes logiques qui est un ordinateur, d'ailleurs :-)
@JardelB.sur le réseau StackExchange, si une réponse vous a le plus aidé, vous l'acceptez en cliquant sur une coche à gauche.Cet acte remercie automatiquement l'auteur en lui ajoutant une réputation positive.
Adam Davis
2018-02-08 22:35:53 UTC
view on stackexchange narkive permalink

Oui. Vous aurez besoin de plusieurs blocs pour le faire fonctionner:

  1. Vous avez besoin d'un bloc de pilotage LCD. L'écran LCD est destiné à être écrit en mode 4 bits ou 8 bits, je recommande 8 bits pour cette application. Chaque écriture implique de mettre les données sur le bus et de tourner la ligne E. Pour ce système, il vous suffit d'écrire sur l'écran LCD afin que les lignes RD / WR puissent être câblées haut ou bas pour mettre l'écran en mode écriture.
  2. Vous devez initialiser l'écran LCD une fois sous tension, ce qui implique de lui envoyer une série d'octets. Cela impliquera une sorte de mémoire, qu'il s'agisse d'une matrice de diodes ou d'une ROM. A la mise sous tension, un compteur devra envoyer des adresses séquentielles à la "mémoire" dont la sortie sera acheminée vers le bloc de pilotage LCD.
  3. Vous avez besoin d'un bloc de lecture de clavier. Je vous suggère d'utiliser une interface clavier PS2 si vous souhaitez utiliser un clavier de style PC, mais vous pouvez créer votre propre banque de boutons et système de numérisation si vous le souhaitez. Si vous utilisez PS2, vous devrez générer une horloge et lire des données série, puis les convertir en données parallèles.
  4. Vous avez besoin d'un bloc de conversion de clavier. Cela prendra le code du clavier et le convertira en un caractère que l'écran LCD peut afficher. Cela impliquera une mémoire similaire au bloc d'initialisation, mais vous aurez besoin d'au moins une cellule de mémoire pour chaque clé, ce qui nécessite une très grande matrice de diodes ou une ROM. Si vous êtes intelligent, vous pouvez utiliser une ROM pour les deux fonctions.

Comme d'autres l'ont souligné, tout cela n'est pas trivial et nécessitera de nombreuses puces logiques pour chaque section. Cependant, cela peut être fait, et lorsque vous réussirez, vous aurez terminé un projet très difficile.

Si vous étendez la définition des portes logiques aux portes virtuelles dans un FPGA, ce ne serait pas difficile.Vous pouvez trouver des blocs HDL pré-écrits pour les entrées PS / 2 et HD44780, ou même pour la sortie VGA.
Michael Karas
2018-02-08 21:23:55 UTC
view on stackexchange narkive permalink

Permettez-moi d'ajouter un autre point de vue à ce sujet. Si vous voulez vraiment apprendre ce qu'il faut d'un point de vue logique pour interfacer un clavier à un module LCD avec une conception logique dédiée spécifique, je peux dire un certain nombre de choses ....

  1. C'est toujours formidable de pouvoir apprendre à faire les choses au niveau des écrous et des boulons. Les choses apprises de cette manière resteront avec vous toute votre vie.
  2. Plutôt que d’aborder cela avec l’idée de créer un ensemble de fils et de portes logiques, regardez autour de vous sur eBay une carte d’évaluation FPGA usagée dotée d’un clavier et d’un module LCD. Ceux-ci seront connectés aux broches FPGA. Vous pouvez ensuite apprendre tout ce que vous voulez sur le processus de conception logique en utilisant les ressources de conception FPGA pour créer la fonctionnalité souhaitée.
  3. Vous constaterez rapidement que presque toutes les personnes qui utilisent une carte d'évaluation FPGA du type que j'ai décrit ci-dessus concevront leur système pour inclure un microcontrôleur "soft core" dans le FPGA qui exécute ensuite un algorithme logiciel pour faire fonctionner le clavier et le Interfaces du module LCD !!
Adam Eberbach
2018-02-09 09:44:14 UTC
view on stackexchange narkive permalink

Absolument, mais vous en auriez besoin d'un très grand nombre!

Une ressource utile pourrait être Code par Charles Petzold.Il en parle dans son interview ici.

Ce livre commence par examiner comment vous pouvez transmettre des informations en un seul bit, puis deux bits (c'est-à-dire un si par terre, deux si par mer), puis plus.Puis examine la logique et comment les portes peuvent être implémentées avec des relais, puis passe à des blocs de construction de plus en plus complexes comme les bascules et les additionneurs.Vous trouverez comment implémenter des retards, des diviseurs, des multiplexeurs, de la mémoire, en gros tout ce dont vous auriez besoin.S'il y a une ressource qui part de rien et construit un ordinateur entier "à la main", c'est probablement celle-ci.

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

Oui, c'est possible. C'est une tâche assez complexe - même si vous l'implémentiez dans FPGA, cela prendrait probablement des semaines plutôt que des jours.

Je me demande ce que vous apprendrez d'un projet de cette complexité au-dessus de votre expérience de faire de même avec un mcu (ou quelque chose de plus simple, ou simplement d'interfacer le monde avec votre mcu).

En 1986 environ, j'ai construit un «simulateur d'ascenseur» en utilisant deux matrices de LED 8x8, des puces de comptage et une vaste gamme de diodes. Cela m'a appris un peu sur la conception de système, la minimisation de la logique, certains concepts de machine à états, mais pas beaucoup sur la conception de circuits.

Bien sûr, il a fait une démo impressionnante (l'école l'a gardée et l'a présentée pour la montrer lors des journées portes ouvertes), et à l'époque, ce n'était pas si loin de l'état de l'art.

En faisant la même chose aujourd'hui, j'utiliserais une plate-forme MCU (le micro-bit a même la matrice intégrée), et la tâche serait logicielle. Si j'utilisais un FPGA, j'écrirais à peu près le même logiciel dans verilog. Utiliser une logique discrète ou même des réseaux de diodes aujourd'hui, c'est apprendre à vous-même des compétences obsolètes (oui, j'ai construit un ampli à lampes 144 MHz, donc j'apprécie qu'il peut parfois y avoir de la pertinence).

La différence entre le simulateur d'ascenseur et l'échelle des designs sur lesquels je travaille aujourd'hui (100k gate, 5-10 mes designs) est vraiment le niveau d'abstraction. Décomposez la conception en blocs, modélisez les interactions et obtenez la bonne structure. L'implémentation de bas niveau consiste à réutiliser quelque chose qui a déjà été fait. La conception fonctionnelle repose également pour ses performances sur un décompresseur logiciel complexe pour reconstruire le flux de données que je génère.

Si vous vous limitez à l'implémentation uniquement en logique, vous manquez une étape inventive massive où le logiciel peut facilement faire votre travail pour vous (exemple trivial, trier un ensemble de valeurs d'adresse de configuration par ordre croissant pour appliquer une règle de priorité.Bien sûr, le matériel peut le faire, mais le coût de la mise en œuvre est non négligeable et aussi inutile - les logiciels utilisant ma conception peuvent le faire gratuitement).

Une petite quantité de calcul intégrée dans un appareil est désormais presque gratuite - vous pouvez fréquemment réduire le coût de production en ajoutant un mcu (et obtenir plus de fonctionnalités qui peuvent ou non ajouter une valeur réelle).



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...