Configuración de la función en SPLC780D LCD

0

Me estoy quedando en blanco con esto. Tengo una 1602A-1 16x2 pantalla LCD conectada a una chip de expansión de puerto i2c .

Estoy usando la pantalla en modo de 4 bits, así que tengo DB4-7 conectado a GPIO 0-3 respectivamente.

También conecté RS, R / W y E a otros pines GPIO.

Puedo ver que la función de la cadena binaria es 001010xx para establecer el modo de 4 bits con 2 líneas de visualización y el modo de visualización de puntos 5x8. Por lo tanto, estoy configurando los pines GPIO 0-3 en 0010 y luego configurando el pin de habilitación alto. Puse el pin de habilitación a bajo y puse el GPIO 0-3 a 1000. De nuevo, pulso el pin de habilitación.

Todo el tiempo, los pines RS y R / W están bajos para indicar la entrada de instrucción & Escribe, respectivamente.

He probado la salida de pines con un multímetro, por lo que estoy seguro de que son altos y bajos cuando deberían estar ... sin embargo, simplemente no funciona. La pantalla no cambia a 2 líneas ni puedo enviar comandos de 4 bits de manera similar, siguiendo esto.

¿Alguien tiene alguna idea?

    
pregunta phil-lavin

1 respuesta

2

¿Tiene los 4 bits inferiores de los datos vinculados al suelo?

Primero debe reiniciar la pantalla LCD enviando el comando 0x30 tres veces. Aunque la pantalla LCD aún estará en modo de 8 bits, los cuatro bits inferiores están cableados a 0, por lo que no es necesario enviar los nibbles por separado.

Ahora envíe el comando 0x20, nuevamente en modo de 8 bits. Cuando este comando termine, la pantalla LCD estará en modo de 4 bits.

Para habilitar 2 filas, envíe el comando 0x28. Ahora está en modo de 4 bits, por lo que necesita enviar dos nibbles.

Escribir en la pantalla LCD a través de un expansor de puerto requerirá hasta ocho escrituras en el expansor de puerto para cada byte escrito en la pantalla LCD. Esto es necesario debido a la secuencia de tiempo requerida para las diversas señales de control. La secuencia que utilizo es:

  1. Establezca el valor apropiado en RS para datos o comandos

  2. Establezca EN alto

  3. Ponga el mordisco final de los datos / comando en D [7: 4]

  4. Lleva EN baja

  5. Lleva EN alta

  6. Dale un mordisco a D [7: 4]

  7. Lleva EN baja

  8. Lleve RS bajo (opcional)

Recuerde que la pantalla LCD tarda mucho tiempo en procesar un comando y debe esperar a que finalice antes de iniciar otro comando o enviar otro byte de datos. La pantalla LCD que estoy usando necesita muchos microsegundos para algunos comandos, así que estoy usando un tick del sistema de 1 ms y escribiendo un byte en cada interrupción de tick. Si no quiere esperar, debe observar el estado OCUPADO en D7 en su lugar.

    
respondido por el Joe Hass

Lea otras preguntas en las etiquetas