MicroCode Studio & PBP: Control de LCD

Las LCD están compuestos básicamente por una pantalla de cristal líquido y un circuito microcontrolador especializado el cual posee los circuitos y memorias de control necesarias para desplegar el conjunto de caracteres ASCII, un conjunto básico de caracteres japoneses, griegos y algunos símbolos matemáticos por medio de un circuito denominado generador de caracteres. La lógica de control se encarga de mantener la información en la pantalla hasta que ella sea sobrescrita o borrada en la memoria RAM de datos.


El compilador en BASIC permite definir los pines del microcontrolador que se conectan al LCD (pines tales como datos, enable, escritura, etc.) usando la función DEFINE. Los parámetros disponibles para el manejo de LCD alfanuméricos son los siguientes:
  • LCD_BITS: Define el número de bits de la interfaz de datos. Se pueden asignar valores de 4 u 8, siendo 4 el valor por defecto.
  • LCD_DREG: Define a que puerto del PIC tenemos conectado el port de datos del LCD. Los valores permitidos son PORTA, PORTB, PORTC, etc. Por defecto se asume PORTB.
  • LCD_DBIT: Define cual es el primer pin del puerto que usamos para enviar los datos al LCD cuando seleccionamos un bus de 4 bits. Solo puede ser el 0 (para los pines el 0, 1, 2 y 3) o 4 (para usar los pines 4, 5, 6 y 7). Por defecto se asume “4”, y esta instrucción se ignora para LCD_BITS = 8.
  • LCD_RSREG: Define a que puerto del PIC tenemos conectado el pin RS del LCD. Los valores permitidos son PORTA, PORTB, PORTC, etc. Por defecto se asume PORTB.
  • LCD_RSBIT: Define a que pin del puerto tenemos conectado el pin RS del LCD. Por defecto se asume “3”.
  • LCD_EREG: Define a que puerto del PIC tenemos conectado el pin E del LCD. Los valores permitidos son PORTA, PORTB, PORTC, etc. Por defecto se asume PORTB.
  • LCD_EBIT: Define a que pin del puerto tenemos conectado el pin E del LCD. Por defecto se asume “2”.
  • LCD_RWREG: Define a que puerto del PIC tenemos conectado el pin RW del LCD. Los valores permitidos son 0, PORTA, PORTB, PORTC, etc. Por defecto se asume “0”, que significa “no usamos el pin RW”.
  • LCD_RWBIT: Define a que pin del puerto tenemos conectado el pin RW del LCD. Por defecto se asume “0”, que significa “no usamos el pin RW”.
  • LCD_COMMANDUS: Define cuantos microsegundos demora la escritura de un comando en el display. Por defecto, este valor es de 5000. La mayoría de los LCD funcionan bien con un valor de 2000, lo que hace más rápidos nuestros programas.
  • LCD_DATAUS: Define cuantos microsegundos demora la escritura de un dato en el LCD. Por defecto, este valor es de 100.
  • LCD_INITMS: Define cuantos microsegundos demora la inicialización de la electrónica del LCD. Por defecto, este valor es de 100.
Una vez definidos los puertos y los pines del LCD, es necesario realizar una pausa de medio segundo antes de enviar los datos al LCD, esto para que tenga tiempo de inicializar la memoria RAM el dispositivo. Usamos la función PAUSE.

A continuación se muestra las sentencias para escritura del LCD, usando LCDOUT:


El pin RW va a tierra debido a que se solo escribirá datos en el LCD.

Para escribir un dato en el LCD se usan funciones como DEC, HEX, BIN, por ejemplo:

LCDOUT $FE, 1, DEC 38

LCDOUT $FE, $C0, BIN 38

Si se desea escribir en una posición inicial específica del LCD, se usa la siguiente tabla para determinar dicha posición:


Por ejemplo, para escribir desde la tercera celda de la segunda fila la palabra “ELECTRONICA” se usa:

LCDOUT $FE,$C2,”ELECTRONICA”

O bien se puede escribir la dirección de memoria en formato decimal: C2 está en hexadecimal y es 194 en decimal, por la tanto:

LCDOUT $FE,194,”TEXTO”

Físicamente, el LCD de 16×2 se debe conectar como lo indica la siguiente figura, para controlar el contraste de la pantalla:


Descripción y función de los pines de LCD.
 
Descargas:
      Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


      Donaciones:
      Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


      Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

      Publicar un comentario

      0 Comentarios