Interconectando el microcontrolador, LCD y dos botones pulsadores

0

Problema:

Estoy usando PIC16F84A como microcontrolador, wh1602a (LCD) [16x2], y dos botones pulsadores. Quiero dar al usuario dos opciones, como la opción 1 y la opción 2 en la pantalla, y el usuario presiona un botón para desplazarse entre las opciones y un botón para confirmar una de las opciones.

Mi intento:

Pensé en hacerlo como marcos, por ejemplo, inicialmente comienzo en el primer fotograma:

-> Option 1

   Option 2 

luego, una vez que se presiona el botón de desplazamiento, borro la pantalla LCD y me muevo al marco 2, que es

    Option 1

 -> Option 2 

y así sucesivamente.

§ ¿Puedo mover el cursor a cualquier ubicación en el mapa LCD 16x2?

§ ¿Cómo puedo hacer un seguimiento de la ubicación del cursor?

El manual de la pantalla LCD es:

  

enlace

    
pregunta Hasan Hammoud

1 respuesta

0
  

¿Cómo puedo hacer un seguimiento de la ubicación del cursor?

Con un 'int'. Si la pantalla LCD es 16x2, entonces la ubicación del cursor podría ser rastreada por un entero de 5 bits (de 0 a 31). "Mantener un seguimiento" se traduce en la jerga del programador como mantener una variable en la memoria con los datos relevantes.

No hay una instrucción disponible en este módulo para obtener información sobre la posición actual, por lo que debe realizar un seguimiento de la misma cada vez que se actualice. Esto puede requerir experimentación, ya que la hoja de datos es muy poco descriptiva sobre lo que hace cada instrucción. Si la posición se actualiza en cualquier instrucción dada, entonces actualice esta variable en consecuencia hasta que lo haga correctamente.

  

¿Puedo mover el cursor a cualquier ubicación en el mapa LCD 16x2?

Sí, con el cursor o mostrar la instrucción de cambio. Para llegar a una ubicación exacta significaría hacer uso de la variable de seguimiento que ya tiene en la memoria.

  

¿Ahora se incrementa solo cuando imprimo una letra? O tengo que incrementarlo yo mismo. ¿Cómo está esta variable que he creado vinculado a la pantalla LCD. Por ejemplo, si imprimo la letra 'H' en la pantalla, ¿cómo puedo obtener el valor del cursor?

La variable pertenece a su código, por lo que su código debe actualizarlo. El módulo es ajeno a la existencia de esta variable. Digamos que sabemos, a través de la experimentación, que cada vez que llama a la instrucción X, el cursor mueve las posiciones Y. Por lo tanto, la variable de seguimiento debe actualizarse con Y cada vez que se llame a X. Si la letra 'H' de impresión hace que el cursor se mueva, entonces incremente su variable en 1. Si no lo hace, entonces mantenga la variable como está.

  

En la hoja de datos hay una fila. Establecer dirección DDRAM 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 Configurar dirección DDRAM en el contador de direcciones Estoy usando el modo de 4 bits, así que solo puedo usar D7 D6 D5 D5 D4 Puedo No encuentre los comandos adecuados para el modo de 4 bits.

En la interfaz de 4 bits, estas instrucciones más largas se dividen en 2 instrucciones separadas. Consulte la página 18 de la hoja de datos para ver un ejemplo.

    
respondido por el Vicente Cunha

Lea otras preguntas en las etiquetas