¿Es posible manejar una pantalla LCD de 2 X 16 usando puertas lógicas? (Sin ordenador)

6

Quiero hacer un circuito utilizando puertas lógicas que impriman un mensaje en la pantalla LCD (2 x 16). ¿Alguna idea? Quiero saber cómo hacerlo "a mano". como los viejos tiempos

¿Puedo construir un circuito de puertas lógicas conectadas a un teclado que cuando presiono una tecla, el carácter se muestra en la pantalla LCD?

    
pregunta Jardel B.

5 respuestas

16

Es posible hacer un circuito fuera de las puertas lógicas que podrían inicializarse y mostrar los caracteres en un módulo de modo de caracteres LCD de 16x2. También es posible hacer un circuito fuera de las puertas lógicas que podrían tomar la salida de un teclado de matriz estándar o incluso un teclado tipo PS2 y enrutar los datos del teclado al módulo LCD.

Sin embargo, lo más importante a tener en cuenta es que solo al formular la pregunta, implica que se encuentra al comienzo de la curva de aprendizaje de cómo hacer un proyecto como este. Le sugiero que si desea construir algo a partir de puertas lógicas, comience con algo mucho más simple hasta que tenga una idea de lo que implica organizar las cosas para hacer este tipo de cosas. Solo entonces podrá comenzar a responder su propia pregunta sobre por qué no tiene mucho sentido conectar un teclado y un módulo LCD con puertas lógicas dedicadas. Se necesitaría una buena cantidad de puertas lógicas para lograr esto y ciertamente mucho tiempo y esfuerzo para lograr un buen resultado. Una vez que lo hubo completado, casi inmediatamente comenzaría a pensar en cómo podría hacer que la pantalla muestre una cadena de caracteres y posiblemente incluso tenga la capacidad de "editar" la cadena mostrada. Ahora, la implementación de la puerta lógica se convierte en una pesadilla de un proyecto completamente nuevo.

Entonces, hay una razón por la que todo el mundo ha hecho la transición para hacer cosas como estas con un microcontrolador. Se utilizan interfaces muy simples para conectar elementos como los teclados de matriz y los módulos LCD 16x2 a las interfaces GPIO del microcontrolador. Estas interfaces simples son fáciles de construir y probar para asegurarse de que funcionan. Una vez en su lugar, se convierte en un simple trabajo de software para proporcionar la conectividad lógica entre el teclado y el módulo LCD. Y ese software puede ser tan simple como el escenario de diseño original que solicitó para tomar solo una entrada del teclado y mostrarlo en la pantalla o se puede adaptar para mostrar casi cualquier cosa en la pantalla ... por ejemplo, mostrando una cuente si cuántas veces se presionó una tecla ... o muestra cuánto tiempo se presionó una tecla ... o muestra una interfaz de usuario completa que opera su dispositivo.

    
respondido por el Michael Karas
7

Sí. Necesitarás varios bloques para que funcione:

  1. Necesitas un bloque de conducción LCD. La pantalla LCD está diseñada para ser escrita en modo de 4 u 8 bits, recomiendo 8 bits para esta aplicación. Cada escritura implica poner los datos en el bus y girar la línea E. Para este sistema, solo necesita escribir en la pantalla LCD para que las líneas RD / WR puedan cablearse en alto o bajo para poner la pantalla en modo de escritura.
  2. Es necesario inicializar el LCD una vez que se enciende, lo que implica enviarle una serie de bytes. Esto implicará algún tipo de memoria, ya sea una matriz de diodos o una rom. En el encendido, un contador tendrá que enviar direcciones secuenciales a la "memoria" cuya salida se enrutará al bloque de control de la pantalla LCD.
  3. Necesitas un bloque de lectura del teclado. Le sugiero que use una interfaz de teclado PS2 si desea usar un teclado estilo PC, sin embargo, puede crear su propio banco de botones y sistema de escaneo si lo desea. Si usas PS2, tendrás que generar un reloj y leer datos en serie, luego convertirlos en datos paralelos.
  4. Necesita un bloque de conversión de teclado. Esto tomará el código del teclado y lo convertirá en un carácter que la pantalla LCD puede mostrar. Esto implicará una memoria similar al bloque de inicialización, pero necesitará al menos una celda de memoria para cada tecla, lo que requerirá una matriz de diodos muy grande o una ROM. Si está listo para hacerlo, puede usar una ROM para ambas funciones.

Como han señalado otros, todo esto no es trivial y requerirá muchos chips lógicos para cada sección. Sin embargo, se puede hacer, y cuando tenga éxito, habrá completado un proyecto muy difícil.

    
respondido por el Adam Davis
3

Permítanme agregar otra versión de esto. Si realmente desea aprender lo que se necesita desde un punto de vista lógico para conectar un teclado a un módulo LCD con un diseño lógico dedicado específico, entonces puedo decir varias cosas ...

  1. Siempre es bueno poder aprender a hacer cosas a nivel de tuercas y tornillos. Las cosas aprendidas de esta manera permanecerán contigo toda la vida.
  2. En lugar de enfocar esto con la idea de construir un conjunto de cables y puertas lógicas, busque en eBay un tablero de evaluación FPGA usado que tenga un teclado y un módulo LCD. Estos serán conectados a los pines FPGA. Luego puede aprender todo lo que desee sobre el proceso de diseño lógico utilizando los recursos de diseño de FPGA para hacer la funcionalidad que desea.
  3. Encontrará rápidamente que casi todas las personas que utilizan una placa de evaluación FPGA del tipo que describí anteriormente diseñarán su sistema para incluir un microcontrolador de "núcleo suave" en el FPGA que luego ejecuta un algoritmo de software para operar el teclado y el Interfaces de módulo LCD !!
respondido por el Michael Karas
1

Absolutamente, ¡pero necesitarías un montón de ellos!

Un recurso útil podría ser Código por Charles Petzold . Lo comenta en su entrevista aquí .

Este libro comienza observando cómo puede transmitir información en un solo bit, luego dos bits (es decir, uno si es por tierra, dos si es por mar) y luego más. Luego analiza la lógica y cómo se pueden implementar puertas con relés, luego pasa a bloques de construcción cada vez más complejos, como flip-flops y sumadores. Encontrará cómo implementar demoras, divisores, multiplexores, memoria, básicamente todo lo que necesita. Si hay un recurso que comienza desde la nada y construye una computadora completa "a mano", probablemente sea este.

    
respondido por el Adam Eberbach
1

Sí, es posible. Es una tarea bastante compleja, incluso si la implementó en FPGA, probablemente llevaría semanas en lugar de días.

Cuestiono lo que aprenderás de un proyecto de esta complejidad por encima de tu experiencia de hacer lo mismo con un mcu (o algo más simple, o simplemente interactuar con el mundo con tu mcu).

En 1986, construí un 'simulador de elevación' con un par de matrices de 8x8 LED, algunos chips de contador y una gran variedad de diodos. Esto me enseñó un poco sobre el diseño del sistema, la minimización de la lógica, algunos conceptos de máquinas de estado, pero no mucho sobre el diseño de circuitos.

Claro, hizo una demostración impresionante (la escuela la guardó y la sacó para mostrarla en los días de puertas abiertas), y en ese momento no estaba tan lejos del "estado del arte".

Haciendo lo mismo hoy, usaría una plataforma MCU (el micro bit incluso tiene la matriz incorporada), y la tarea sería software. Si usara un FPGA, estaría escribiendo prácticamente el mismo software en verilog. Hoy en día, usar lógica discreta o incluso matrices de diodos es enseñarte habilidades obsoletas (sí, he construido un amplificador de válvula de 144 MHz, por lo que aprecio que a veces pueda haber relevancia).

La diferencia entre el simulador de ascensores y la escala de diseños en los que trabajo hoy (100k gate, 5-10 mis diseños) es realmente el nivel de abstracción. Divida el diseño en bloques, modele las interacciones y obtenga la estructura correcta. La implementación de bajo nivel tiene que ver con reutilizar algo que se ha hecho antes. El diseño funcional también se basa en su rendimiento en un descompresor de software complejo para reconstruir el flujo de datos que genero.

Si se limita a implementar solo en lógica, pierde un paso inventivo masivo donde el software puede hacer su trabajo fácilmente (ejemplo trivial, ordenar un conjunto de valores de direcciones de configuración en orden ascendente para aplicar una regla de prioridad. Claro, el hardware puede hacerlo, pero el costo en la implementación no es trivial y tampoco tiene sentido, el software que usa mi diseño puede hacerlo de forma gratuita).

Una pequeña cantidad de cómputo incrustado en un dispositivo ahora es casi gratis: con frecuencia puede reducir el costo de producción al agregar un mcu (y obtener más funciones que pueden o no agregar un valor real).

    
respondido por el Sean Houlihane

Lea otras preguntas en las etiquetas