Gráficos LCD definidos por el usuario ¿Cómo enviar instrucciones?

2

Tengo una pantalla de cristal líquido LCM1602C 16x2 que estoy experimentando con el uso de interruptores (sin microcontrolador) para entender cómo funciona (sé que es mucho más fácil con arduino y usar la biblioteca liquidcrystal).

Tuve la oportunidad de enviar diferentes instrucciones, como visualización clara, configuración de dirección, cambio de modo de introducción de caracteres y cambio de cursor y dirección de cambio, también pude ingresar datos y mostrar diferentes caracteres en la pantalla sin problemas. Sin embargo, no pude crear gráficos personalizados con los comandos CGRAM.

En mi libro dice que primero necesito limpiar la pantalla, luego debo enviar un comando CGRAM establecido que sea entre 0100 0000 y 0111 1111, luego debo ingresar la fila de datos por fila de 8 filas . Así que hice lo siguiente:

  1. envíe instrucciones claras al configurar D7- > D0 0000 0001 mientras la entrada RS está configurada en baja, luego inicie el comando haciendo la transición bajo-alto-bajo en la entrada de habilitación E.
  2. establezca el comando CGRAM configurando D7- > D0 0100 0000, RS baja y E baja-alta-baja transición.
  3. enviar filas de gráficos personalizados D7- > D0, RS es bajo y cada fila va seguida de una transición de baja altura en la entrada E:

    • 0000 1110
    • 0001 0001
    • 0001 0001
    • 0001 0001
    • 0000 1110
    • 0000 1010
    • 0000 1110
    • 0000 0100

Pero no funcionó, todo lo que sucedió fue que la pantalla estaba desactivada y el cursor se ocultó. ¿Qué me estoy perdiendo?

    
pregunta user7342539

2 respuestas

1

Hay hasta 8 gráficos definidos por el usuario que se pueden programar y almacenar en la memoria CGRAM, la memoria CGRAM comienza en la dirección 0100 0000 (0x40 HEX o 64 Decimal) y consta de varios bloques de 8 bytes de tamaño.

Los gráficos tienen un tamaño de exactamente 8 bytes cada uno (1 byte = 8 bits) que ocupan un solo bloque CGRAM.

SepuedeaccederalosgráficosdefinidosporelusuarioymostrarlosusandolasdireccionesdePantalla00000000-00000111(0x00-0x07HEX,0-7Decimal).Inicialmenteseríanbasuracuandoseenciendelapantalla.LasiguienteeslalistadelasdireccionesdevisualizacióndegráficosdefinidasporelusuarioylasdireccionesdeCGRAMcorrespondientes(MSBestáalaizquierda):

GraphicsNumberDisplayAddressCGRAMAddress------------------------------------------------------------10000000001000000->0100011120000000101001000->0100111130000001001010000->0101011140000001101011000->0101111150000010001100000->0110011160000010101101000->0110111170000011001110000->0111011180000011101111000->01111111

Siqueremosprogramarlossegundosgráficos,porejemplo,tenemosquehacerlosiguiente:

  1. EnviamoselcomandosetCGRAMaddressparaestablecerladirecciónalcomienzodelsegundobloqueCGRAMquees01001000(RSdebeestablecersebajo(0)comoentodosloscomandos)seguidodeunaltoa-bajatransiciónenE(habilitarentrada).

  2. Ingresamoslas8filasdedatoscorrespondientesalpatróndemapadebitsfilaporfila.Antesdecomenzar,nosaseguramosdequeRSestéalto(1).ConcadafilaconfiguramoslasentradasdedatosD7->D1ylasseguimosporunatransicióndealtoabajoenE,estoalmacenarálosdatosenlaubicacióndeladirecciónactualymoveráelcursoralasiguientedirecciónaladerecha.

Despuésdealmacenartodaslasfilasdedatosquehemosterminado,esposiblequedeseeborrarlapantalladespuésdeesoporqueelprocedimientoanteriorcambiaríalaposicióndelcursor(elcomandodereinicioes00000001).

Enestepunto,lossegundosgráficosdefinidosporelusuarioseprogramanypuedenmostrarseutilizandoladireccióndepantalla00000001.Lasiguientefigurailustraelprocedimientoanterior:

Observe que los tres primeros bits de cada fila de datos siempre son 0 porque solo hay 5 píxeles en cada fila. También tenga en cuenta que si agregamos más filas en el segundo paso, los datos adicionales se almacenarán en el siguiente bloque CGRAM, que es el tercer gráfico en el ejemplo anterior.

    
respondido por el razzak
1

Es difícil seguir exactamente lo que hiciste, pero creo que no entiendes bien cómo funcionan los gráficos personalizados. No se muestran inmediatamente cuando se carga el patrón de bits. Lo que debe hacer es cargar primero el patrón de bits para una de las ranuras CGRAM (típicamente 8 disponibles). Luego, debe hacer que la memoria de visualización normal acepte un patrón de bits (código de caracteres) que se corresponda con el patrón de bits cargado.

Si llenó toda la primera línea de la pantalla LCD con el mismo código de carácter especial, el patrón de bits correspondiente se mostrará en cada posición de la primera línea.

Visite mi página web para obtener información adicional sobre el uso de símbolos especiales con una pantalla LCD.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas