Вы находитесь на странице: 1из 5

USO DEL LCD USANDO PIC-BASIC-PRO (PBP) Una pantalla de cristal lquido o LCD (sigla del ingls liquid

crystal display) es una pantalla delgada y plana formada por un nmero de pxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos electrnicos de pilas, ya que utiliza cantidades muy pequeas de energa elctrica. El compilador PBP permite definir los pines del microcontrolador que se conectan al LCD (pines tales como datos, enable, escritura, etc.) usando la funcin DEFINE. Tenemos las siguientes definiciones:
Tabla 1. Definicin de puerto y bits para el LCD.
DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE LCD_DREG PORTA LCD_DBIT 0 LCD_RSREG PORTA LCD_RSBIT 4 LCD_EREG PORTB LCD_EBIT 3 LCD_RWREG PORTE LCD_RWBIT 2 LCD_BITS 4 LCD_LINES 2 LCD_COMMANDUS 2000 LCD_DATAUS 50 'Puerto de datos del LCD 'Inicio de datos del bit 0 o 4 'Seleccin del puerto del registro 'Seleccin del bit de registro 'Puerto del pin de habilitacin (enable) 'Pin de enable 'Puerto de Lectura y Escritura 'Pin de Lectura y Escritura 'Tamao del bus de datos: 4 o 8 'Nmero de lneas del LCD 'Tiempo de retardo de comandos 'Retardo de envo de datos

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 funcin PAUSE. A continuacin se muestra las sentencias para escritura del LCD, usando LCDOUT:
Tabla 2. Comandos de escritura del LCD. Comando $FE, 1 $FE, 2 $FE, $0C $FE, $0E $FE, $0F $FE, $10 $FE, $14 $FE, $C0 Limpia visor Vuelve a inicio (comienzo de la primera lnea) Apagar cursor Subrayado del cursor activo Parpadeo del cursor activo Mueve cursor una posicin hacia la izquierda Mueve cursor una posicin hacia la derecha Mueve cursor al comienzo de la segunda lnea Operacin

La siguiente figura muestra la conexin de un LCD de 16x2 con un PIC16F628A en el simulador PROTEUS:

Figura 1. Conexin de LCD en Proteus. Ntese que RW va a tierra debido a que se solo escribir datos en el LCD. El cdigo de control del LCD con el PIC es el siguiente:
' DEFINICIN DE REGISTROS PARA EL LCD DEFINE LCD_DREG PORTB 'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE DATOS DEFINE LCD_DBIT 4 'DESDE EL BIT B.4 AL BIT B.7 DEFINE LCD_RSREG PORTB'UTILIZAR EL REGISTRO DE CONTROL/DATOS EN EL PUERTO B DEFINE LCD_RSBIT 1 'EN EL BIT B.1 DEFINE LCD_EREG PORTB 'UTILIZAR EL ENABLE EN EL PUERTO B DEFINE LCD_EBIT 2 'EN EL BIT B.2 TRISB=0 'ESTABLECER EL PUERTO B COMO SALIDA PAUSE 500 ' PAUSE DE MEDIO SEGUNDO LCDOUT $FE, 1 ' LIMPIAR VISOR LCDOUT $FE, 1, "WWW.MATPIC.COM" 'ESCRIBIR EN LA PRIMER LNEA LCDOUT $FE, $C0, "ELECTRONICA" 'ESCRIBIR EN LA SEGUNDA LNEA LCDOUT $FE, $0C 'APAGAR EL CURSOR

Este cdigo escribir en las dos lneas del LCD. Asimismo, para escribir un dato en el LCD se usan funciones como DEC, HEX, BIN, por ejemplo:

LCDOUT $FE, 1, DEC 25 LCDOUT $FE, $C0, BIN 25

Si se desea escribir en una posicin inicial especfica del LCD, se usa la siguiente tabla para determinar dicha posicin: Tabla 3. Cdigo de direcciones de caracteres (valores hexadecimales): Display Position 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DD RAM Address 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F DD RAM Address C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF Por ejemplo, para escribir desde la segunda celda de la segunda fila la palabra "TEXTO" se usa:
LCDOUT $FE,$C1,"TEXTO"

O bien se puede escribir la direccin de memoria en formato decimal: C1 hexadecimal es 193 decimal, por la tanto:
LCDOUT $FE,193,"TEXTO"

Es equivalente a la funcin precedente. Fsicamente, el LCD de 16x2 se debe conectar como lo indica la siguiente figura, para controlar el contraste de la pantalla:

Figura 2. Conexin del LCD junto al potencimetro de contraste.

Un ejemplo de aplicacin se muestra a continuacin:


' DEFINICIN DE REGISTROS PARA EL LCD DEFINE LCD_DREG PORTB 'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE DATOS DEFINE LCD_DBIT 4 'DESDE EL BIT B.4 AL BIT B.7 DEFINE LCD_RSREG PORTB'SELECCIN DEL PUERTO DEL REGISTRO DEFINE LCD_RSBIT 1 'EN EL BIT B.1 DEFINE LCD_EREG PORTB 'UTILIZAR EL ENABLE EN EL PUERTO B DEFINE LCD_EBIT 2 'EN EL BIT B.2 ' ESTABLECER EL PUERTO B COMO SALIDA TRISB=0 ' TAMAO DE VARIABLES DEL CONTADOR B0 VAR BYTE B1 VAR BYTE ' PAUSA DE INICIO DEL LCD PAUSE 500 '-------------------------------------------------------LCDOUT $FE, 1 ' LIMPIAR LCD LCDOUT $FE, 1, "WWW.MATPIC.COM" 'ESCRIBIR EN LA PRIMERA LNEA LCDOUT $FE, $C0, "ELECTRONICA" 'ESCRIBIR EN LA SEGUNDA LNEA PAUSE 1000 ' MOSTRAR DATOS DECIMALES Y BINARIOS LCDOUT $FE, 1, DEC 25 LCDOUT $FE, $C0, BIN 25 '-------------------------------------------------------'MOSTRAR LETRA POR LETRA PAUSE 500 LCDOUT $FE, 1 ' LIMPIAR LCD FOR B0 = 0 TO 13 LOOKUP B0,["WWW.MATPIC.COM"],B1 LCDOUT $FE,$0C,B1 PAUSE 500 NEXT LCDOUT $FE, $C0 'COLOCAR EL CURSOR EN LA SEG LNEA FOR B0 = 0 TO 13 LOOKUP B0,["WWW.EQBYTE.COM"],B1 LCDOUT $FE,$0C,B1 PAUSE 500 NEXT '-------------------------------------------------------'DESPLAZAMIENTO DE TEXTO EN LCD FOR B0 = 144 TO 128 STEP -1 LCDOUT $FE, 1 ' LIMPIAR LCD LCDOUT $FE,B0,"WWW.MATPIC.COM" PAUSE 200 NEXT

END

Este video te explica detalles del programa:

Puedes bajar el programa y la simulacin en Proteus haciendo click en el botn siguiente:

Вам также может понравиться