uso del lcd usando pic

6
USO DEL LCD USANDO PIC-BASIC-PRO (PBP) Una pantalla de cristal líquido o LCD (sigla del inglés liquid crystal display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica. El compilador PBP permite definir los pines del microcontrolador que se conectan al LCD (pines tales como datos, enable, escritura, etc.) usando la función DEFINE. Tenemos las siguientes definiciones: Tabla 1. Definición de puerto y bits para el LCD. DEFINE LCD_DREG PORTA 'Puerto de datos del LCD DEFINE LCD_DBIT 0 'Inicio de datos del bit 0 o 4 DEFINE LCD_RSREG PORTA 'Selección del puerto del registro DEFINE LCD_RSBIT 4 'Selección del bit de registro DEFINE LCD_EREG PORTB 'Puerto del pin de habilitación (enable) DEFINE LCD_EBIT 3 'Pin de enable DEFINE LCD_RWREG PORTE 'Puerto de Lectura y Escritura DEFINE LCD_RWBIT 2 'Pin de Lectura y Escritura DEFINE LCD_BITS 4 'Tamaño del bus de datos: 4 o 8 DEFINE LCD_LINES 2 'Número de líneas del LCD DEFINE LCD_COMMANDUS 2000 'Tiempo de retardo de comandos DEFINE LCD_DATAUS 50 'Retardo de envío 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 función PAUSE. A continuación se muestra las sentencias para escritura del LCD, usando LCDOUT: Tabla 2. Comandos de escritura del LCD.

Upload: alberto-sanchez-jimenez

Post on 12-Feb-2016

229 views

Category:

Documents


0 download

DESCRIPTION

lcd

TRANSCRIPT

Page 1: Uso Del Lcd Usando Pic

USO DEL LCD USANDO PIC-BASIC-PRO (PBP)Una pantalla de cristal líquido o LCD

(sigla del inglés liquid crystal display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos colocados delante de una fuente de luz o reflectora.

A menudo se utiliza en dispositivos electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica.

El compilador PBP permite definir los pines del microcontrolador que se conectan al LCD (pines tales como datos, enable, escritura, etc.) usando la función DEFINE.

Tenemos las siguientes definiciones:

Tabla 1. Definición de puerto y bits para el LCD.DEFINE LCD_DREG PORTA 'Puerto de datos del LCDDEFINE LCD_DBIT 0 'Inicio de datos del bit 0 o 4 DEFINE LCD_RSREG PORTA 'Selección del puerto del registro DEFINE LCD_RSBIT 4 'Selección del bit de registroDEFINE LCD_EREG PORTB 'Puerto del pin de habilitación (enable)DEFINE LCD_EBIT 3 'Pin de enable DEFINE LCD_RWREG PORTE 'Puerto de Lectura y Escritura DEFINE LCD_RWBIT 2 'Pin de Lectura y EscrituraDEFINE LCD_BITS 4 'Tamaño del bus de datos: 4 o 8 DEFINE LCD_LINES 2 'Número de líneas del LCDDEFINE LCD_COMMANDUS 2000 'Tiempo de retardo de comandos DEFINE LCD_DATAUS 50 'Retardo de envío 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 función PAUSE.

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

Tabla 2. Comandos de escritura del LCD.

Comando Operación $FE, 1 Limpia visor

$FE, 2 Vuelve a inicio (comienzo de la primera línea)

$FE, $0C Apagar cursor

$FE, $0E Subrayado del cursor activo

$FE, $0F Parpadeo del cursor activo

$FE, $10 Mueve cursor una posición hacia la izquierda

$FE, $14 Mueve cursor una posición hacia la derecha

Page 2: Uso Del Lcd Usando Pic

$FE, $C0 Mueve cursor al comienzo de la segunda línea

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

Figura 1. Conexión de LCD en Proteus.

Nótese que RW va a tierra debido a que se solo escribirá datos en el LCD.

El código de control del LCD con el PIC es el siguiente:

' DEFINICIÓN DE REGISTROS PARA EL LCDDEFINE LCD_DREG PORTB 'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE DATOSDEFINE LCD_DBIT 4 'DESDE EL BIT B.4 AL BIT B.7DEFINE LCD_RSREG PORTB'UTILIZAR EL REGISTRO DE CONTROL/DATOS EN EL PUERTO BDEFINE LCD_RSBIT 1 'EN EL BIT B.1DEFINE LCD_EREG PORTB 'UTILIZAR EL ENABLE EN EL PUERTO BDEFINE LCD_EBIT 2 'EN EL BIT B.2TRISB=0 'ESTABLECER EL PUERTO B COMO SALIDAPAUSE 500 ' PAUSE DE MEDIO SEGUNDOLCDOUT $FE, 1 ' LIMPIAR VISORLCDOUT $FE, 1, "WWW.MATPIC.COM" 'ESCRIBIR EN LA PRIMER LÍNEALCDOUT $FE, $C0, "ELECTRONICA" 'ESCRIBIR EN LA SEGUNDA LÍNEALCDOUT $FE, $0C 'APAGAR EL CURSOR

Este código escribirá en las dos líneas del LCD.

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

LCDOUT $FE, 1, DEC 25

Page 3: Uso Del Lcd Usando Pic

LCDOUT $FE, $C0, BIN 25

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

Tabla 3. Código 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 8FDD 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 dirección de memoria en formato decimal:

C1 hexadecimal es 193 decimal, por la tanto:

LCDOUT $FE,193,"TEXTO"

Es equivalente a la función precedente.

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

Figura 2. Conexión del LCD junto al potenciómetro de contraste.

Un ejemplo de aplicación se muestra a continuación:

Page 4: Uso Del Lcd Usando Pic

' DEFINICIÓN DE REGISTROS PARA EL LCDDEFINE LCD_DREG PORTB 'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE DATOSDEFINE LCD_DBIT 4 'DESDE EL BIT B.4 AL BIT B.7DEFINE LCD_RSREG PORTB'SELECCIÓN DEL PUERTO DEL REGISTRO DEFINE LCD_RSBIT 1 'EN EL BIT B.1DEFINE LCD_EREG PORTB 'UTILIZAR EL ENABLE EN EL PUERTO BDEFINE LCD_EBIT 2 'EN EL BIT B.2' ESTABLECER EL PUERTO B COMO SALIDATRISB=0' TAMAÑO DE VARIABLES DEL CONTADORB0 VAR BYTEB1 VAR BYTE' PAUSA DE INICIO DEL LCDPAUSE 500'--------------------------------------------------------LCDOUT $FE, 1 ' LIMPIAR LCDLCDOUT $FE, 1, "WWW.MATPIC.COM" 'ESCRIBIR EN LA PRIMERA LÍNEA LCDOUT $FE, $C0, "ELECTRONICA" 'ESCRIBIR EN LA SEGUNDA LÍNEAPAUSE 1000' MOSTRAR DATOS DECIMALES Y BINARIOSLCDOUT $FE, 1, DEC 25LCDOUT $FE, $C0, BIN 25'--------------------------------------------------------'MOSTRAR LETRA POR LETRAPAUSE 500LCDOUT $FE, 1 ' LIMPIAR LCD FOR B0 = 0 TO 13LOOKUP B0,["WWW.MATPIC.COM"],B1LCDOUT $FE,$0C,B1PAUSE 500NEXT LCDOUT $FE, $C0 'COLOCAR EL CURSOR EN LA SEG LÍNEAFOR B0 = 0 TO 13LOOKUP B0,["WWW.EQBYTE.COM"],B1LCDOUT $FE,$0C,B1PAUSE 500NEXT '--------------------------------------------------------'DESPLAZAMIENTO DE TEXTO EN LCDFOR B0 = 144 TO 128 STEP -1LCDOUT $FE, 1 ' LIMPIAR LCDLCDOUT $FE,B0,"WWW.MATPIC.COM" PAUSE 200 NEXT END

Este video te explica detalles del programa:

Page 5: Uso Del Lcd Usando Pic

Puedes bajar el programa y la simulación en Proteus haciendo click en el botón siguiente: