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 grupoINTRODUCCION La pantalla de cristal liquido o LCD (Liquid Crystal Display) es un dispositivo microcontrolado de visualización grafica para la presentación de caracteres, símbolos o incluso dibujos (en algunos modelos), es este caso dispone de 2 filas de 16 caracteres cada una y cada carácter dispone de una matriz de 5x7 puntos (pixels), aunque los hay de otro número de filas y caracteres. Este dispositivo esta gobernado internamente por un microcontrolador Hitachi 44780 y regula todos los parámetros de presentación, este modelo es el mas comúnmente usado y esta información se basará en el manejo de este u otro LCD compatible. CARACTERISTICAS PRINCIPALES •Pantalla de caracteres ASCII, además de los caracteres Kanji y Griegos. •Desplazamiento de los caracteres hacia la izquierda o la derecha. •Proporciona la dirección de la posición absoluta o relativa del caracter. •Memoria de 40 caracteres por línea de pantalla. •Movimiento del cursor y cambio de su aspecto. •Permite que el usuario pueda programar 8 caracteres. •Conexión a un procesador usando un interfaz de 4 u 8 bits ESTRUCTURA Se trata de un sistema eléctrico de presentación de datos formado por 2 capas conductoras transparentes y en medio un material especial cristalino (cristal líquido) 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 número) el material cristalino se reorienta alterando su transparencia.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZOFACULTAD DE INFORMATICA Y ELECTRONICA
ESCUELA DE INGENIERIA ELECTRONICAELECTRONICA APLICADA
TONY FLORES VICTOR MONTES
GEOVANNY VALENCIAGLORIA 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 dispositivomicrocontrolado de visualización grafica para la presentación de caracteres, símbolos oincluso dibujos (en algunos modelos), es este caso dispone de 2 filas de 16 caracterescada una y cada carácter dispone de una matriz de 5x7 puntos (pixels), aunque los hayde otro número de filas y caracteres. Este dispositivo esta gobernado internamente por
un microcontrolador Hitachi 44780 y regula todos los parámetros de presentación, estemodelo es el mas comúnmente usado y esta información se basará en el manejo deeste u otro LCD compatible.
CARACTERISTICAS PRINCIPALES
• Pantalla de caracteres ASCII, además de los caracteres Kanji y Griegos.• Desplazamiento de los caracteres hacia la izquierda o la derecha.• Proporciona la dirección de la posición absoluta o relativa del caracter.• Memoria de 40 caracteres por línea de pantalla.• Movimiento del cursor y cambio de su aspecto.• Permite que el usuario pueda programar 8 caracteres.• Conexión a un procesador usando un interfaz de 4 u 8 bits
ESTRUCTURA
Se trata de un sistema eléctrico de presentación de datos formado por 2 capasconductoras transparentes y en medio un material especial cristalino (cristal líquido)que tienen la capacidad de orientar la luz a su paso.
Cuando la corriente circula entre los electrodos transparentes con la forma arepresentar (por ejemplo, un segmento de un número) el material cristalino sereorienta alterando su transparencia.
El material base de un LCD lo constituye el cristal líquido, el cual exhibe uncomportamiento similar al de los líquidos y unas propiedades físicas anisotrópicassimilares a las de los sólidos cristalinos. Las moléculas de cristal líquido poseen unaforma alargada y son más o menos paralelas entre sí en la fase cristalina. La mayoríade cristales responden con facilidad a los campos eléctricos, exhibiendo distintas
propiedades ópticas en presencia o ausencia del campo.
El tipo más común de visualizador LCD es, con mucho, el denominado nemático detorsión, término que indica que sus moléculas en su estado desactivado presentan unadisposición en espiral. La polarización o no de la luz que circula por el interior de laestructura, mediante la aplicación o no de un campo eléctrico exterior, permite laactivación de una serie de segmentos transparentes, los cuales rodean al cristallíquido.
TIPOS
Según la disposición molecular y su ordenamiento, se clasifican en tres tipos:
• Nemáticos• Esméticos• Colestéricos
Según sus características ópticas, pueden también clasificarse como:
• Reflectivos• Transmisivos• Transreflectivos
FUNCIONAMIENTOPara comunicarse con la pantalla LCD podemos hacerlo por medio de sus patitas deentrada de dos maneras posibles, con bus de 4 bits o con bus de 8 bits, este último esel que explicaremos. En la siguiente figura vemos las dos maneras posibles deconexionar el LCD con un PIC 16F84.
HOMEColoca el cursor en la posición de inicio (dirección 0) y hace que el display comience adesplazarse desde la posición original. El contenido de la memoria RAM de datos de
visualización (DD RAM) permanece invariable. La dirección de la memoria RAM dedatos para la visualización (DD RAM) es puesta a 0.
ENTRY MODE SETEstablece la dirección de movimiento del cursor y especifica si la visualización se vadesplazando a la siguiente posición de la pantalla o no. Estas operaciones se ejecutandurante la lectura o escritura de la DD RAM o CG RAM. Para visualizar normalmenteponer el bit S=0.
DISPLAY ON/OFF CONTROL Activa o desactiva poniendo en ON/OFF tanto al display (D) como al cursor (C) y seestablece si este último debe o no parpadear (B).
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 D C BTiempo de ejecución: 40µs
CURSOR OR DISPLAY SHIFTMueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datosde visualización DD RAM.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 1 S/C R/L X X
Tiempo de ejecución: 40µs FUNCTION SETEstablece el tamaño de interfase con el bus de datos (DL), número de líneas deldisplay (N) y tipo de carácter (F)
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 1 DL N F X X
Tiempo de ejecución: 40µs
SET THE CG RAM ADDRESSEl módulo LCD además de tener definidos todo el conjunto de caracteres ASCII,permite al usuario definir 4 u 8 caracteres gráficos. La composición de estos caracteresse va guardando en una memoria llamada CG RAM con capacidad para 64 bytes. Cadacarácter gráfico definido por el usuario se compone de 16 u 8 bytes que se almacenanen sucesivas posiciones de la CG RAM.
Mediante esta instrucción se establece la dirección de memoria CG RAM a partir de lacual se irán almacenando los bytes que definen un carácter gráfico. Ejecutando estecomando todos los datos que se lean o escriban posteriormente, lo hacen desde estamemoria CG RAM.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 1 Dirección de la CG RAM
Tiempo de ejecución: 40µs
SET THE DD RAM ADDRESSLos caracteres o datos que se van visualizando, se van almacenando en una memoriallamada DD RAM para de aquí pasar a la pantalla.
Mediante esta instrucción se establece la dirección de la memoria DD RAM a partir dela cual se irán almacenando los datos a visualizar. Ejecutando este comando, todos los
datos que se escriban o lean posteriormente lo harán desde esta memoria DD RAM.Las direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del primerrenglón y de la C0h a la CFh con los 16 caracteres del segundo renglón, para estemodelo de LCD.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 1 Dirección de la DD RAM
Tiempo de ejecución: 40µS
READ BUSY FLAG & ADDRESSCuando el modulo LCD esta ejecutando cualquiera de estas instrucciones, tarda uncierto tiempo de ejecución en el que no se debe mandar ninguna instrucción. Para ellodispone de un flag llamado BUSY (ocupado) que indica que se está ejecutando unainstrucción previa.
Esta instrucción de lectura informa del estado de dicho flag además de proporcionar elvalor del contador de direcciones de la CG RAM o de la DD RAM según la última que sehaya empleado.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1 BF Dirección de la CG RAM o DD RAM
Tiempo de ejecución: 40µs
WRITE DATA TO CG OR DD RAMMediante este comando se escribe en la memoria DD RAM los datos que se quierenpresentar en pantalla y que serán los diferentes códigos ASCII de los caracteres avisualizar.
Igualmente se escribe en la memoria CG RAM los diferentes bytes que permitenconfeccionar caracteres gráficos a gusto del usuario.
El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente
la instrucción de direccionamiento DD RAM o la de direccionamiento CG RAM.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0 Código ASCII o byte del carácter gráfico
Tiempo de ejecución: 40µs READ DATA FROM CG OR DD RAM
Mediante este comando se lee de la memoria DD RAM los datos que haya almacenadosy que serán los códigos ASCII de los caracteres almacenados. Igualmente se lee de lamemoria CG RAM los diferentes bytes con los que se ha confeccionado un determinadocarácter gráfico.
El leer de uno u otro tipo de memoria depende de si se ha empleado previamente lainstrucción de direccionamiento de la DD RAM o la de direccionamiento CG RAM.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1 Código ASCII o byte del carácter gráfico
Tiempo de ejecución: 40µs
ABREVIATURAS EMPLEADAS EN LOS CÓDIGOS ANTERIORES
S 1 - Desplaza la visualización cada vez que se escribe un dato 0 - Modo normal
I/D 1 - Incremento del cursor 0 - Decremento del cursor
S/C 1 - Desplaza el display 0 - Mueve el cursor
R/L 1 - Desplazamiento a la derecha 0 - Desplazamiento a la izquierda
BF 1 - Módulo ocupado 0 - Módulo disponible
DL 1 - Bus de datos de 8 bits 0 - Bus de datos de 4 bits
N 1 - LCD de dos líneas 0 - LCD de una línea
F 1 - Carácter de 5 x 10 puntos 0 - Carácter de 5 x 7 puntos
B 1 - Parpadeo del cursor ON 0 - Parpadeo del cursor OFF
Realizar un programa que permita visualizar en una pantalla LCD losnombres de los integrantes de grupo
Rutinas de tratamiento del LCD (LCD_CXX.INC)#define ENABLE bsf PORTA,2 ;activa señal E#define DISABLE bcf PORTA,2 ;desactiva señal E#define LEER bsf PORTA,1 ;pone LCD en modo RD#define ESCRIBIR bcf PORTA,1 ;pone LCD en modo WR #define OFF_COMANDO bCf PORTA,0 ;desactiva modo RS#define ON_COMANDO bsf PORTA,0 ;activa RS modo dato
CBLOCK Lcd_varLcd_Temp_1 ;inicio de las variables seráLcd_Temp_2 ;la primera dirección libre disponible
ENDCUP_LCD
bsf STATUS,RP0 ;banco 1clrf PORTB ;RB<0-7>salidas digitalesclrf PORTA ;puerta A salidasbcf STATUS,RP0 ;banco 0OFF_COMANDO ;RS=0DISABLE ;E=0return
LCD_BUSY LEER ;pone el LCD en modo RDbsf STATUS,RP0movlw h'FF'movwf PORTB ;puerta B como entradabcf STATUS,RP0 ;selecciona el banco 0ENABLE ;activa el LCDnop
LCD_BUSY_1btfsc PORTB,7 ;chequea bit de busygoto LCD_BUSY_1DISABLE ;desactiva el LCDbsf STATUS,RP0clrf PORTB ;puerta B salida
bcf STATUS,RP0ESCRIBIR ;pone LCD en modo WR return
LCD_DATOOFF_COMANDO ;desactiva RS (modo comando)movwf PORTB ;valor ASCII a sacar por PORTBcall LCD_BUSY ;espera a que se libere el LCDON_COMANDO ;activa RS (modo dato)goto LCD_E ;genera pulso de E
LCD_REGOFF_COMANDO ;desactiva RS (modo comando)movwf PORTB ;código de comandocall LCD_BUSY ;LCD libre?goto LCD_E ;si:genera el pulso de E
LCD_INImovlw b'00111000'call LCD_REG ;codigo de instruccióncall LCD_DELAY ;temporizamovlw b'00111000'
call LCD_REG ;codigo de instruccioncall LCD_DELAY ;temporizamovlw b'00111000'call LCD_REG ;codigo de instruccioncall LCD_DELAY ;temporizamovlw b'00000001' ;borra LCD y HOMEcall LCD_REGreturn
clrf PORTA ;borra los latch de salidabsf STATUS,RP0 ;selecciona el banco 1clrf TRISB ;puerta B se configura como salidaclrf TRISA ;puerta A se configura como salidamovlw b'00001001'movwf OPTION_REG ;preescaler de 2 al WDTbcf STATUS,RP0 ;selcciona el banco 0
call UP_LCD ;configura puerto para LCDcall LCD_INI ;inicia el LCDmovlw b'00001100'call LCD_REG ;LCD On, cursor y blink Off
Loopclrwdt ;refresca el WDTmovlw 0X80call LCD_REG ;coloca el cursor en la primera posiciónmovlw 'G'call LCD_DATOmovlw 'L'call LCD_DATOmovlw 'O'call LCD_DATOmovlw 'R'
Estas rutinas suelen incluirse como fichero independiente al del programa principal. Enla declaración de etiquetas utilizamos la directiva #define. Cada vez que se utiliza, sehace corresponder a la etiqueta que le sigue el valor que viene a continuación. Así porejemplo cada vez que utilicemos “ENABLE” es como si se estuviera poniendo “bsf PORTA,2” .
A continuación explicamos las rutinas más importantes que se utilizan para el manejodel LCD
UP_LCD Configura las líneas del PIC para el LCDLCD_BUSY Lectura de la bandera busy y la direcciónLCD_E Pulso de enable. En los nuevos LCD esta señal debe estar a “0” unos
40 µs antes de volver a activarse a “1” LCD_DATO Envía el dato presente en W a la memoria DDRAM
LCD_REG Escritura de comandos en el LCD, envía el comando presente en WLCD_INI Inicialización del LCD enviando el comando “Function Set” 3 vecesconsecutivas con un intervalo de 5 ms. El LCD queda borrado y en laprimera posición
LCD_DELAY Rutina de temporización de unos 5 ms. Se emplean las variablesLcd_Temp_1 y Lcd_Temp_2 en lugar de TMR0, permitiendo el uso deeste 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 elcódigo de control en W y llamar la rutina LCD_REG, y si se trata de un dato seintroduce 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 configuración de laherramienta llamada LCD Module podemos observar que frase tenemos presente en elLCD, así pues pudimos verificar que los resultados son los adecuados.
Con la implementación de esta práctica hemos llegado a las siguientes conclusiones:
• Debemos tener muy en cuenta al momento de configurar cada una de lasentradas o salidas del PIC, ya que de esto dependerá el correctofuncionamiento del LCD.
• Tomar en cuenta el número total de caracteres que deseamos escribir y cual esel valor adecuado para lograr posicionarnos en el primer segmento del LCD, yaque primero debemos posicionarnos, luego escribir, y si ya llegamos a 16caracteres, hacer al salto de línea 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 están gobernados por unmicrocontrolador interno.
RECOMENDACIONES
• Utilizar en lo posible un simulador para verificar si el camino que estamossiguiendo es correcto o de lo contrario tomar medidas para obtener losresultados que se nos han pedido
• Al momento de implementar el circuito tomar las debidas precauciones y en loposible ayudarse de material complementario, ya que un manejo inadecuado de
los dispositivos puede ocasionar que los mismos sufran daños irreversibles.