Sei sulla pagina 1di 12

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO FACULTAD DE INFORMATICA Y ELECTRONICA ESCUELA DE INGENIERIA ELECTRONICA ELECTRONICA APLICADA TONY FLORES VICTOR

MONTES GEOVANNY VALENCIA GLORIA VANEGAS

TEMA: PANTALLAS LCD OBJETIVOS Controlar una pantalla LCD mediante el PIC16F84 Realizar un programa que presente en pantalla los nombres de los integrantes del grupo

INTRODUCCION La pantalla de cristal liquido o LCD (Liquid Crystal Display) es un dispositivo microcontrolado de visualizacin grafica para la presentacin de caracteres, smbolos o incluso dibujos (en algunos modelos), es este caso dispone de 2 filas de 16 caracteres cada una y cada carcter dispone de una matriz de 5x7 puntos (pixels), aunque los hay de otro nmero de filas y caracteres. Este dispositivo esta gobernado internamente por un microcontrolador Hitachi 44780 y regula todos los parmetros de presentacin, este modelo es el mas comnmente usado y esta informacin se basar en el manejo de este u otro LCD compatible. CARACTERISTICAS PRINCIPALES Pantalla de caracteres ASCII, adems de los caracteres Kanji y Griegos. Desplazamiento de los caracteres hacia la izquierda o la derecha. Proporciona la direccin de la posicin absoluta o relativa del caracter. Memoria de 40 caracteres por lnea de pantalla. Movimiento del cursor y cambio de su aspecto. Permite que el usuario pueda programar 8 caracteres. Conexin a un procesador usando un interfaz de 4 u 8 bits

ESTRUCTURA Se trata de un sistema elctrico de presentacin de datos formado por 2 capas conductoras transparentes y en medio un material especial cristalino (cristal lquido) que tienen la capacidad de orientar la luz a su paso. Cuando la corriente circula entre los electrodos transparentes con la forma a representar (por ejemplo, un segmento de un nmero) el material cristalino se reorienta alterando su transparencia.

El material base de un LCD lo constituye el cristal lquido, el cual exhibe un comportamiento similar al de los lquidos y unas propiedades fsicas anisotrpicas similares a las de los slidos cristalinos. Las molculas de cristal lquido poseen una forma alargada y son ms o menos paralelas entre s en la fase cristalina. La mayora de cristales responden con facilidad a los campos elctricos, exhibiendo distintas propiedades pticas en presencia o ausencia del campo. El tipo ms comn de visualizador LCD es, con mucho, el denominado nemtico de torsin, trmino que indica que sus molculas en su estado desactivado presentan una disposicin en espiral. La polarizacin o no de la luz que circula por el interior de la estructura, mediante la aplicacin o no de un campo elctrico exterior, permite la activacin de una serie de segmentos transparentes, los cuales rodean al cristal lquido. TIPOS Segn la disposicin molecular y su ordenamiento, se clasifican en tres tipos: Nemticos Esmticos Colestricos

Segn sus caractersticas pticas, pueden tambin clasificarse como: Reflectivos Transmisivos Transreflectivos

FUNCIONAMIENTO Para comunicarse con la pantalla LCD podemos hacerlo por medio de sus patitas de entrada de dos maneras posibles, con bus de 4 bits o con bus de 8 bits, este ltimo es el que explicaremos. En la siguiente figura vemos las dos maneras posibles de conexionar el LCD con un PIC 16F84.

Conexionado con un bus de 4 bits

Conexionado con un bus de 8 bits

Como puede apreciarse el control de contraste se realiza al dividir la alimentacin de 5V con una resistencia variable de 10K. Las lneas de datos son tri estado, esto indica que cuando el LCD no esta habilitado sus entradas y salidas pasan a alta impedancia DESCRIPCION DE LOS PINES
PIN N SIMBOLO DESCRIPCION 1 Vss Tierra de alimentacin GND 2 Vdd Alimentacin de +5V CC 3 Vo Contraste del cristal liquido. ( 0 a +5V ) Seleccin del registro de control/registro de datos: 4 RS RS=0 Seleccin registro de control RS=1 Seleccin registro de datos Seal de lectura/escritura: 5 R/W R/W=0 Escritura (Write) R/W=1 Lectura (Read) Habilitacin del modulo: 6 E E=0 Mdulo desconectado E=1 Mdulo conectado 7-14 D0-D7 Bus de datos bidireccional.

JUEGOS DE INSTRUCCIONES Estas son las instrucciones para el control del modulo LCD Hitachi 44780 o compatible. CLEAR DISPLAY Borra el mdulo LCD y coloca el cursor en la primera posicin (direccin 0). Pone el bit I/D a 1 por defecto.
RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 0 DB1 0 DB0 1

Tiempo de ejecucin: 1.64ms

HOME Coloca el cursor en la posicin de inicio (direccin 0) y hace que el display comience a desplazarse desde la posicin original. El contenido de la memoria RAM de datos de visualizacin (DD RAM) permanece invariable. La direccin de la memoria RAM de datos para la visualizacin (DD RAM) es puesta a 0.
RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 0 DB1 1 DB0 X

Tiempo de ejecucin: 1.64ms

ENTRY MODE SET Establece la direccin de movimiento del cursor y especifica si la visualizacin se va desplazando a la siguiente posicin de la pantalla o no. Estas operaciones se ejecutan durante la lectura o escritura de la DD RAM o CG RAM. Para visualizar normalmente poner el bit S=0.
RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 1 DB1 I/D DB0 S

Tiempo de ejecucin: 40s

DISPLAY ON/OFF CONTROL Activa o desactiva poniendo en ON/OFF tanto al display (D) como al cursor (C) y se establece si este ltimo debe o no parpadear (B).
RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 1 DB2 D DB1 C DB0 B

Tiempo de ejecucin: 40s

CURSOR OR DISPLAY SHIFT Mueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos de visualizacin DD RAM.
RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 1 DB3 S/C DB2 R/L DB1 X DB0 X

Tiempo de ejecucin: 40s

FUNCTION SET Establece el tamao de interfase con el bus de datos (DL), nmero de lneas del display (N) y tipo de carcter (F)
RS 0 R/W 0 DB7 0 DB6 0 DB5 1 DB4 DL DB3 N DB2 F DB1 X DB0 X

Tiempo de ejecucin: 40s

SET THE CG RAM ADDRESS El mdulo LCD adems de tener definidos todo el conjunto de caracteres ASCII, permite al usuario definir 4 u 8 caracteres grficos. La composicin de estos caracteres se va guardando en una memoria llamada CG RAM con capacidad para 64 bytes. Cada carcter grfico definido por el usuario se compone de 16 u 8 bytes que se almacenan en sucesivas posiciones de la CG RAM.

Mediante esta instruccin se establece la direccin de memoria CG RAM a partir de la cual se irn almacenando los bytes que definen un carcter grfico. Ejecutando este comando todos los datos que se lean o escriban posteriormente, lo hacen desde esta memoria CG RAM.
RS 0 R/W 0 DB7 0 DB6 1 DB5 DB4 DB3 DB2 DB1 Direccin de la CG RAM DB0

Tiempo de ejecucin: 40s

SET THE DD RAM ADDRESS Los caracteres o datos que se van visualizando, se van almacenando en una memoria llamada DD RAM para de aqu pasar a la pantalla. Mediante esta instruccin se establece la direccin de la memoria DD RAM a partir de la cual se irn almacenando los datos a visualizar. Ejecutando este comando, todos los datos que se escriban o lean posteriormente lo harn desde esta memoria DD RAM. Las direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del primer rengln y de la C0h a la CFh con los 16 caracteres del segundo rengln, para este modelo de LCD.
RS 0 R/W 0 DB7 1 DB6 DB5 DB4 DB3 DB2 Direccin de la DD RAM DB1 DB0

Tiempo de ejecucin: 40S

READ BUSY FLAG & ADDRESS Cuando el modulo LCD esta ejecutando cualquiera de estas instrucciones, tarda un cierto tiempo de ejecucin en el que no se debe mandar ninguna instruccin. Para ello dispone de un flag llamado BUSY (ocupado) que indica que se est ejecutando una instruccin previa. Esta instruccin de lectura informa del estado de dicho flag adems de proporcionar el valor del contador de direcciones de la CG RAM o de la DD RAM segn la ltima que se haya empleado.
RS 0 R/W 1 DB7 BF DB6 DB5 DB4 DB3 DB2 DB1 Direccin de la CG RAM o DD RAM DB0

Tiempo de ejecucin: 40s

WRITE DATA TO CG OR DD RAM Mediante este comando se escribe en la memoria DD RAM los datos que se quieren presentar en pantalla y que sern los diferentes cdigos ASCII de los caracteres a visualizar. Igualmente se escribe en la memoria CG RAM los diferentes bytes que permiten confeccionar caracteres grficos a gusto del usuario. El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento DD RAM o la de direccionamiento CG RAM.

RS 1

R/W 0

DB7

DB6 DB5 DB4 DB3 DB2 DB1 Cdigo ASCII o byte del carcter grfico

DB0

Tiempo de ejecucin: 40s

READ DATA FROM CG OR DD RAM Mediante este comando se lee de la memoria DD RAM los datos que haya almacenados y que sern los cdigos ASCII de los caracteres almacenados. Igualmente se lee de la memoria CG RAM los diferentes bytes con los que se ha confeccionado un determinado carcter grfico. El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento de la DD RAM o la de direccionamiento CG RAM.
RS 1 R/W 1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Cdigo ASCII o byte del carcter grfico


Tiempo de ejecucin: 40s

ABREVIATURAS EMPLEADAS EN LOS CDIGOS ANTERIORES


1 - Desplaza la visualizacin cada vez que se escribe un dato 0 - Modo normal 1 - Incremento del cursor I/D 0 - Decremento del cursor 1 - Desplaza el display S/C 0 - Mueve el cursor 1 - Desplazamiento a la derecha R/L 0 - Desplazamiento a la izquierda 1 - Mdulo ocupado BF 0 - Mdulo disponible 1 - Bus de datos de 8 bits DL 0 - Bus de datos de 4 bits 1 - LCD de dos lneas N 0 - LCD de una lnea 1 - Carcter de 5 x 10 puntos F 0 - Carcter de 5 x 7 puntos 1 - Parpadeo del cursor ON B 0 - Parpadeo del cursor OFF 1 - Cursor ON C 0 - Cursor OFF 1 - Display ON D 0 - Display OFF X Indeterminado S

APLICACIN PRCTICA Realizar un programa que permita visualizar en una pantalla LCD los nombres de los integrantes de grupo Rutinas de tratamiento del LCD (LCD_CXX.INC)
#define #define #define #define #define #define ENABLE bsf PORTA,2 DISABLE bcf PORTA,2 LEER bsf PORTA,1 ESCRIBIR bcf PORTA,1 OFF_COMANDO bCf PORTA,0 ON_COMANDO bsf PORTA,0 CBLOCK Lcd_var Lcd_Temp_1 Lcd_Temp_2 ENDC UP_LCD bsf STATUS,RP0 clrf PORTB clrf PORTA bcf STATUS,RP0 OFF_COMANDO DISABLE return LCD_BUSY LEER bsf STATUS,RP0 movlw h'FF' movwf PORTB bcf STATUS,RP0 ENABLE nop LCD_BUSY_1 btfsc PORTB,7 goto LCD_BUSY_1 DISABLE bsf STATUS,RP0 clrf PORTB bcf STATUS,RP0 ESCRIBIR return LCD_E ENABLE nop DISABLE movlw .14 movwf Lcd_Temp_1 LCD_E_1 decfsz Lcd_Temp_1,F goto LCD_E_1 return ;activa E ;desactiva E ;banco 1 ;RB<0-7>salidas digitales ;puerta A salidas ;banco 0 ;RS=0 ;E=0 ;activa seal E ;desactiva seal E ;pone LCD en modo RD ;pone LCD en modo WR ;desactiva modo RS ;activa RS modo dato ;inicio de las variables ser ;la primera direccin libre disponible

;pone el LCD en modo RD ;puerta B como entrada ;selecciona el banco 0 ;activa el LCD ;chequea bit de busy ;desactiva el LCD ;puerta B salida ;pone LCD en modo WR

;pierde unos 40 microseg para la constante de ;tiempo Tc de los nuevos mdulos LCD ;de winteck

LCD_DATO OFF_COMANDO movwf PORTB call LCD_BUSY ON_COMANDO goto LCD_E LCD_REG OFF_COMANDO movwf PORTB call LCD_BUSY goto LCD_E LCD_INI movlw b'00111000' call LCD_REG call LCD_DELAY movlw b'00111000' call LCD_REG call LCD_DELAY movlw b'00111000' call LCD_REG call LCD_DELAY movlw b'00000001' call LCD_REG return LCD_DELAY clrwdt movlw .10 movwf Lcd_Temp_1 clrf Lcd_Temp_2 LCD_DELAY_1 decfsz Lcd_Temp_2,F goto LCD_DELAY_1 decfsz Lcd_Temp_1,F goto LCD_DELAY_1 return

;desactiva RS (modo comando) ;valor ASCII a sacar por PORTB ;espera a que se libere el LCD ;activa RS (modo dato) ;genera pulso de E ;desactiva RS (modo comando) ;cdigo de comando ;LCD libre? ;si:genera el pulso de E

;codigo de instruccin ;temporiza ;codigo de instruccion ;temporiza ;codigo de instruccion ;temporiza ;borra LCD y HOME

Programa completo del enunciado propuesto


LIST P=16F84 #INCLUDE <P16F84.INC> Lcd_var EQU 0X20 Delay_var EQU 0x22 ORG 0X00 goto Inicio ORG 0X05 INCLUDE LCD_CXX.INC Delay sleep decfsz Delay_var,F goto Delay ;temporiza 34.6 mS hasta que rebose el WDT ;se ha repetido el nmero de veces deseado ;no:esperar otros 18mS ;inicio de variables de las rutinas LCD ;variable temporal para temporizacin ;vector de reset ;salva el vector de interrupcin ;incluye las rutinas de manejo del LCD

return ;PROGRAMA PRINCIPAL Inicio clrf PORTB clrf PORTA bsf STATUS,RP0 clrf TRISB clrf TRISA movlw b'00001001' movwf OPTION_REG bcf STATUS,RP0 call UP_LCD call LCD_INI movlw b'00001100' call LCD_REG Loop clrwdt movlw 0X80 call LCD_REG movlw 'G' call LCD_DATO movlw 'L' call LCD_DATO movlw 'O' call LCD_DATO movlw 'R' call LCD_DATO movlw 'I' call LCD_DATO movlw 'A' call LCD_DATO movlw ' ' call LCD_DATO movlw ' ' call LCD_DATO movlw 'G' call LCD_DATO movlw 'E' call LCD_DATO movlw 'O' call LCD_DATO movlw 'V' call LCD_DATO movlw 'A' call LCD_DATO movlw 'N' call LCD_DATO movlw 'N' call LCD_DATO movlw 'Y' call LCD_DATO movlw 0XC0 call LCD_REG movlw ' ' ;refresca el WDT ;coloca el cursor en la primera posicin ;borra los latch de salida ;borra los latch de salida ;selecciona el banco 1 ;puerta B se configura como salida ;puerta A se configura como salida ;preescaler de 2 al WDT ;selcciona el banco 0 ;configura puerto para LCD ;inicia el LCD ;LCD On, cursor y blink Off

;salta a la segunda lnea

call LCD_DATO movlw 'T' call LCD_DATO movlw 'O' call LCD_DATO movlw 'N' call LCD_DATO movlw 'Y' call LCD_DATO movlw ' ' call LCD_DATO movlw ' ' call LCD_DATO movlw ' ' call LCD_DATO movlw ' ' call LCD_DATO movlw 'V' call LCD_DATO movlw 'I' call LCD_DATO movlw 'C' call LCD_DATO movlw 'T' call LCD_DATO movlw 'O' call LCD_DATO movlw 'R' call LCD_DATO movlw .28 movwf Delay_var call Delay movlw b'0000001' call LCD_REG movlw .28 movwf Delay_var call Delay goto Loop END

;temporiza 1

Rutinas de control del LCD Estas rutinas suelen incluirse como fichero independiente al del programa principal. En la declaracin de etiquetas utilizamos la directiva #define. Cada vez que se utiliza, se hace corresponder a la etiqueta que le sigue el valor que viene a continuacin. As por ejemplo cada vez que utilicemos ENABLE es como si se estuviera poniendo bsf PORTA,2 . A continuacin explicamos las rutinas ms importantes que se utilizan para el manejo del LCD

UP_LCD LCD_BUSY LCD_E LCD_DATO LCD_REG LCD_INI

LCD_DELAY

Configura las lneas del PIC para el LCD Lectura de la bandera busy y la direccin Pulso de enable. En los nuevos LCD esta seal debe estar a 0 unos 40 s antes de volver a activarse a 1 Enva el dato presente en W a la memoria DDRAM Escritura de comandos en el LCD, enva el comando presente en W Inicializacin del LCD enviando el comando Function Set 3 veces consecutivas con un intervalo de 5 ms. El LCD queda borrado y en la primera posicin Rutina de temporizacin de unos 5 ms. Se emplean las variables Lcd_Temp_1 y Lcd_Temp_2 en lugar de TMR0, permitiendo el uso de este para otras aplicaciones del usuario

Programa principal Primero debemos inicializar el LCD, este proceso es necesario solamente cuando se utiliza por primera vez el LCD en el programa, una vez que se comience a mandar rdenes o datos al LCD es igual. Cuando se trata de una orden se debe introducir el cdigo de control en W y llamar la rutina LCD_REG, y si se trata de un dato se introduce este en W y se llamar a LCD_DATO. SIMULACION Para verificar si los resultados son los adecuados utilizamos el programa PIC Simulator, este programa permite abrir el archivo .HEX y mediante la configuracin de la herramienta llamada LCD Module podemos observar que frase tenemos presente en el LCD, as pues pudimos verificar que los resultados son los adecuados.

CONCLUSIONES Con la implementacin de esta prctica hemos llegado a las siguientes conclusiones: Debemos tener muy en cuenta al momento de configurar cada una de las entradas o salidas del PIC, ya que de esto depender el correcto funcionamiento del LCD. Tomar en cuenta el nmero total de caracteres que deseamos escribir y cual es el valor adecuado para lograr posicionarnos en el primer segmento del LCD, ya que primero debemos posicionarnos, luego escribir, y si ya llegamos a 16 caracteres, hacer al salto de lnea para poder continuar en la fila inferior. De acuerdo a lo estudiado podemos decir que el PIC va en cierta forma a controlar a otro PIC ya que recordemos que los LCD estn gobernados por un microcontrolador interno.

RECOMENDACIONES Utilizar en lo posible un simulador para verificar si el camino que estamos siguiendo es correcto o de lo contrario tomar medidas para obtener los resultados que se nos han pedido Al momento de implementar el circuito tomar las debidas precauciones y en lo posible ayudarse de material complementario, ya que un manejo inadecuado de los dispositivos puede ocasionar que los mismos sufran daos irreversibles.

BIBLIOGRAFIA http://www.x-robotics.com/rutinas.htm#LCD http://www.x-robotics.com/downloads/rutinas/lcd.txt http://www.x-robotics.com/downloads/rutinas/hola.txt http://es.wikipedia.org/wiki/LCD#LCD_en_la_industria REVISTA DE PROGRAMACIN DE PICs

Potrebbero piacerti anche