6 votos

¿Es posible controlar una pantalla LCD de 2 x 16 mediante puertas lógicas? (Sin ordenador)

Quiero hacer un circuito usando puertas lógicas que imprima un mensaje en la pantalla LCD (2 X 16). ¿Alguna idea? Quiero saber cómo hacer esto "a mano", como en los viejos tiempos.

¿Puedo construir un circuito con puertas lógicas conectadas a un teclado que al pulsar una tecla muestre el carácter en la pantalla LCD?

9 votos

Si te refieres a las pantallas basadas en el HD44780, nunca fueron manejadas "a mano", fueron diseñadas para el bus MCU de Motorola. No es imposible, por supuesto, pero tampoco lo es arrear gatos.

0 votos

¿Puedo construir un circuito con puertas lógicas conectadas a un teclado que al pulsar una tecla muestre el carácter en la pantalla LCD?

2 votos

Como he dicho, sí, es posible.

16voto

Bernd Puntos 61

Es posible hacer un circuito de puertas lógicas que sea capaz de inicializar y mostrar caracteres en un módulo de modo de caracteres LCD 16x2. También es posible hacer un circuito de puertas lógicas que podría tomar la salida de un teclado de matriz estándar o incluso un teclado de tipo PS2 y la ruta que los datos del teclado para el módulo LCD.

Sin embargo, lo que hay que tener en cuenta es que, al formular la pregunta, se da a entender que se está al principio de la curva de aprendizaje sobre cómo realizar un proyecto de este tipo. Te sugiero que si quieres construir algo con puertas lógicas, empieces con algo mucho más simple hasta que te hagas una idea de lo que implica juntar cosas para hacer este tipo de cosas. Sólo entonces empezarás a ser capaz de responder a tu propia pregunta de 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 llegar a un buen resultado. Una vez que se ha completado todo, casi inmediatamente se empieza a pensar en cómo se puede hacer que la pantalla muestre una cadena de caracteres y posiblemente incluso tener 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.

Así que hay una razón por la que todo el mundo ha pasado a hacer cosas como esta con un microcontrolador. Se utilizan interfaces muy simples para conectar cosas como teclados de matriz y 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 sobre el que preguntaste para tomar una sola entrada del teclado y mostrarla en la pantalla o puede ser adaptado para mostrar casi cualquier cosa en la pantalla ... por ejemplo, mostrar un recuento de cuántas veces se ha pulsado una tecla ... o mostrar cuánto tiempo se ha pulsado una tecla ... o mostrar toda una interfaz de usuario que opera su dispositivo.

8 votos

Es posible hacer un circuito de puertas lógicas que sea un ordenador, para el caso :-)

4 votos

@JardelB. en la red StackExchange, si una respuesta te ayudó más aceptar haciendo clic en una marca de verificación a la izquierda de la misma. Este acto agradece automáticamente al autor añadiéndole algo de reputación positiva.

7voto

Federico Builes Puntos 1940

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

  1. Necesitas un bloque de conducción de LCD. El LCD está pensado para ser escrito en modo de 4 u 8 bits, yo recomiendo 8 bits para esta aplicación. Cada escritura involucra poner los datos en el bus y girar la línea E. Para este sistema solo necesitas escribir en el LCD así que las líneas RD/WR pueden ser conectadas en alto o bajo para poner la pantalla en modo de escritura.
  2. Es necesario inicializar el LCD una vez al encenderlo, lo que implica enviarle una serie de bytes. Esto implicará algún tipo de memoria, ya sea una matriz de diodos o una rom. Al encender un contador tendrá que enviar direcciones secuenciales a la "memoria" cuya salida se dirigirá al bloque de conducción del LCD.
  3. Necesitas un bloque de lectura del teclado. Te sugiero que uses una interfaz de teclado PS2 si quieres usar un teclado estilo PC, sin embargo puedes construir tu propio banco de botones y sistema de lectura si quieres. Si usas PS2 tendrás que generar un reloj y leer los datos en serie, y luego convertirlos en datos en paralelo.
  4. Necesitas un bloque de conversión de teclado. Éste tomará el código del teclado y lo convertirá en un carácter que la pantalla LCD pueda mostrar. Esto implicará una memoria similar a la del 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 es inteligente, puede usar una ROM para ambas funciones.

Como otros han señalado, todo esto no es trivial, y requerirá muchos chips lógicos para cada sección. Sin embargo, se puede hacer, y cuando lo consigas habrás completado un proyecto muy duro.

0 votos

Si se amplía la definición de puertas lógicas a puertas virtuales en una FPGA, no sería difícil. Puedes encontrar bloques HDL preescritos para PS/2 in y HD44780 out, o incluso VGA out.

3voto

Bernd Puntos 61

Permítanme añadir otra opinión al respecto. Si realmente quieres aprender lo que se necesita desde un punto de vista lógico para interconectar un teclado a un módulo LCD con un diseño lógico específico, entonces puedo decir una serie de cosas ....

  1. Siempre es estupendo poder aprender a hacer cosas a nivel de tuercas y tornillos. Las cosas que se aprenden de esta manera se quedan contigo para toda la vida.
  2. En lugar de abordar esto con la idea de construir un montón de cables y puertas lógicas, busca en eBay una placa de evaluación FPGA usada que tenga un teclado y un módulo LCD. Estos se conectarán a los pines de la FPGA. Luego puedes aprender todo lo que quieras sobre el proceso de diseño lógico usando los recursos de diseño de la FPGA para hacer la funcionalidad que quieres.
  3. Rápidamente se dará cuenta de que casi toda la gente que utiliza una placa de evaluación FPGA del tipo que he descrito anteriormente diseñará su sistema para incluir un microcontrolador de "núcleo blando" en la FPGA que luego ejecuta un algoritmo de software para operar el teclado y las interfaces del módulo LCD.

1voto

Matthew Brown Puntos 1

Por supuesto, pero necesitarías un montón de ellas.

Un recurso útil podría ser el Código de Charles Petzold . Habla de ello en su entrevista aquí .

Este libro comienza viendo cómo se puede transmitir información en un solo bit, luego en dos bits (es decir, uno si es por tierra, dos si es por mar), y luego más. A continuación, examina la lógica y cómo pueden implementarse las puertas con relés, y luego pasa a bloques de construcción cada vez más complejos, como los flip-flops y los sumadores. Encontrarás cómo implementar retardos, divisores, multiplexores, memoria, básicamente todo lo que puedas necesitar. Si hay un recurso que parte de la nada y construye un ordenador entero "a mano", probablemente sea éste.

1voto

TheBonsai Puntos 3112

Sí, es posible. Es una tarea bastante compleja, incluso si se implementa en una FPGA, es probable que se necesiten semanas en lugar de días.

Me pregunto qué vas a aprender de un proyecto de esta complejidad por encima de tu experiencia haciendo lo mismo con una mcu (o algo más sencillo, o simplemente interconectando el mundo con tu mcu).

Alrededor de 1986, construí un "simulador de ascensor" utilizando un par de matrices de LEDs de 8x8, algunos chips contadores y una enorme matriz de diodos. Esto me enseñó un poco sobre el diseño de sistemas, la minimización de la lógica, algunos conceptos de máquinas de estado, pero no mucho sobre el diseño de circuitos.

Claro, fue una demostración impresionante (la escuela la conservó y la sacó para mostrarla en las jornadas de puertas abiertas), y en ese momento no estaba tan lejos del "estado del arte".

Para hacer lo mismo hoy en día, utilizaría una plataforma MCU (los microbits incluso tienen la matriz incorporada), y la tarea sería de software. Si utilizara una FPGA, escribiría prácticamente el mismo software en verilog. Usar lógica discreta o incluso matrices de diodos hoy en día es enseñar habilidades obsoletas (sí, he construido un amplificador de válvulas de 144 MHz, así que aprecio que a veces puede haber relevancia).

La diferencia entre el simulador de ascensores y la escala de los diseños en los que trabajo hoy en día (100k gate, 5-10 mis diseños) es realmente el nivel de abstracción. Hay que dividir el diseño en bloques, modelar las interacciones y conseguir la estructura adecuada. La implementación de bajo nivel consiste en reutilizar algo que ya se ha hecho antes. El diseño funcional también depende para su rendimiento de un complejo descompresor de software para reconstruir el flujo de datos que genero.

Si te limitas a implementar sólo en la lógica, te pierdes un gran paso de invención en el que el software puede hacer fácilmente tu trabajo (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 coste en la implementación no es trivial y tampoco tiene sentido - el software que utiliza mi diseño puede hacerlo gratis).

Una pequeña cantidad de computación incrustada en un dispositivo es ahora casi gratuita: con frecuencia se puede reducir el coste de producción añadiendo una mcu (y obtener más funciones que pueden o no añadir valor real).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X