practica 7

14
Ing eniería de S is tem as y A utomática Prácticas de Microcontroladores PIC  - 1 - SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 7: E l módulo L C D  E l módulo L C D  E jemplos de func ionami ent o

Upload: yorman-moreno-hernandez

Post on 16-Oct-2015

22 views

Category:

Documents


1 download

TRANSCRIPT

  • 5/26/2018 Practica 7

    1/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 1 -

    SISTEMAS ELECTRNICOS Y AUTOMTICOSPRACTICAS DE MICROCONTROLADORES PIC

    PRCTICA 7:

    El mdu lo LCD

    El mdu lo LCDEjemplos de func ion am iento

  • 5/26/2018 Practica 7

    2/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 2 -

    1. Objetivos:- Conocer el funcionamiento y programacin del mdulo LCD del entorno

    de desarrollo EasyPIC- Grabar programas-ejemplo sobre el dispositivo EasyPIC y comprobar su

    funcionamiento.

    2. El mdulo LCD

    Este apartado est destinado a una breve descripcin del funcionamiento delmdulo LCD incluido en el sistema de evaluacin EasyPIC.

    2.1. Visualizador LCD

    Las pantallas de cristal lquido LCD o display LCD para mensajes (Liquid CristalDisplay) tienen la capacidad de mostrar cualquier carcter alfanumrico,permitiendo representar la informacin que genera cualquier equipo electrnicode una forma fcil y econmica.

    La pantalla consta de una matriz de caracteres (normalmente de 5x7 o 5x8puntos) distribuidos en una, dos, tres o cuatro lneas de 16 hasta 40 caracterescada lnea.

    El proceso de visualizacin es gobernado por un microcontrolador incorporadoa la pantalla, siendo el Hitachi 44780 el modelo de controlador ms utilizado.

    Figura 1. LCD 2x16: est compuesto por 2 lneas de 16 caracteres

    Figura 2. LCD 4x40: est compuesto por 4 lneas de 40 caracteres

  • 5/26/2018 Practica 7

    3/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 3 -

    La tarjeta EasyPIC dispone de un mdulo LCD tipo 16x2.Las caractersticas generales de un mdulo LCD 16x2son las siguientes:

    Consumo muy reducido, del orden de 7.5mW Pantalla de caracteres ASCII, adems de los caracteres japoneses

    Kanji, caracteres griegos y smbolos matemticos. Desplazamiento de los caracteres hacia la izquierda o a la derecha Memoria de 40 caracteres por lnea de pantalla, visualizndose 16

    caracteres por lnea Movimiento del cursor y cambio de su aspecto Permite que el usuario pueda programar 8 caracteres Pueden ser gobernados de 2 formas principales:

    o Conexin con bus de 4 bitso

    Conexin con bus de 8 bits

    2.2. Patillaje

    A continuacin se presenta la descripcin de seales empleadas por el mduloLCD as como el nmero de patilla a la que corresponden.

    PINN

    SMBOLO DESCRIPCIN

    1 VSS Patilla de tierra de alimentacin

    2 VDD Patilla de alimentacin de 5 V3 VO Patilla de contraste del cristal lquido.Normalmente se conecta a unpotencimetro a travs del cual se aplica una tensin variable entre 0 y +5Vque permite regualr el contraste del cristal lquido.

    4 RS Seleccin del registro de control/registro de datos:RS=0 Seleccin del registro de controlRS=1 Seleccin del registro de datos

    5 R/W Seal de lectura/escrituraR/W=0 El mdulo LCD es escritoR/W=1 El mdulo LCD es leido

    6 E Seal de activacin del mdulo LCD:E=0 Mdulo desconectadoE=1 Mdulo conectado

    7-14 D0-D7 Bus de datos bi-direccional. A travs de estas lneas se realiza latransferencia de informacin entre el mdulo LCD y el sistema informticoque lo gestiona

    2.3. DDRAM

    El mdulo LCD posee una zona de memoria RAM llamada DDRAM (DataDisplay RAM) donde se almacenan los caracteres que se van a mostrar en lapantalla.

    Tiene una capacidad de 80 bytes, 40 por cada lnea, de los cuales slo 32 sepueden visualizar a la vez (16 bytes por lnea).

  • 5/26/2018 Practica 7

    4/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 4 -

    De las 80 posibles, las dos direcciones ms importantes de la DDRAM son: Direccin 00h, que es el comienzo de la primera lnea Direccin 40h, que el comienzo de la segunda lnea

    2.4. CARACTERES DEFINIDOS EN LA CGROM

    El LCD dispone de una zona de memoria interna no voltil llamada CGROMdonde se almacena una tabla con los 192 caracteres que pueden servisualizados.Cada uno de los caracteres tiene su representacin binaria de 8 bits. Paravisualizar un carcter debe recibir por el bus de datos el cdigocorrespondiente.

    Por ejemplo:Ab01000001

    Figura 3. Juego de caracteres del mdulo LCD

    Tambin permite definir 8 nuevos caracteres de usuario que se guardan en unazona de RAM denominada CGRAM (Character Generator RAM)

  • 5/26/2018 Practica 7

    5/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 5 -

    2.5. Modos de funcionamiento

    El LCD tiene 3 modos de funcionamiento principales:

    Modo Comando

    Modo Carcter o Dato

    Modo d e lectura del Busy Flag o LCD Ocup ada

    2.6. Comandos de Control

    Consisten en diferentes cdigos que se introducen a travs del bus de datos

    del mdulo LCD:

    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.

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

    0 0 0 0 0 0 0 0 0 1

    Tiempo de ejecucin:1.64 s

    Home

    Coloca el cursor en la posicin de inicio (direccin 0) y hace que el displaycomience a desplazarse desde la posicin original. El contenido de la memoriaRAM de datos de visualizacin (DD RAM) permanecen invariables. La direccinde la memoria RAM de datos para la visualizacin (DD RAM) es puesta a 0.

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 0 1 X

    Tiempo de ejecucin:1.64 s

    Entry mode set

    Establece la direccin de movimiento del cursor y especifica si la visualizacinse va desplazando a la siguiente posicin de la pantalla o no. Estas

  • 5/26/2018 Practica 7

    6/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 6 -

    operaciones se ejecutan durante la lectura o escritura de la DD RAM o CGRAM. Para visualizar normalmente poner el bit S a '0".

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 1 1/D S

    Tiempo de ejecucin:40 s

    Display on/off control

    Activa o desactiva poniendo en ON/OFF tanto al display (D) como alcursor (C) y se establece si este ltimo debe o no parpadear (B).

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 1 D C B

    Tiempo de ejecucin:40 s

    Cursor or display shift

    Mueve el cursor y desplaza el display sin cambiar el contenido de la memoriade datos de visualizacin DD RAM.

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 1 S/C R/L X X

    Tiempo de ejecucin:40 s

    Function set

    Establece el tamao de interface con el bus de datos (DL), nmero delneas del display (N) y tipo de carcter (F).

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 1 DL N F X X

    Tiempo de ejecucin:40 s

  • 5/26/2018 Practica 7

    7/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 7 -

    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 deestos caracteres se va guardando en una memoria llamada CG RAM concapacidad para 64 bytes. Cada carcter grfico definido por el usuario secompone de 16 u 8 bytes que se almacenan en sucesivas posiciones de la CGRAM.

    Mediante esta instruccin se establece la direccin de la memoria CG RAM apartir de la cual se irn almacenando los bytes que definen un carcter grfico.Ejecutado este comando todos los datos que se escriban o se leanposteriormente, lo hacen desde esta memoria CG RAM.

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 1 Direccin de la CG RAM

    Tiempo de ejecucin:40 s

    Set the dd address

    Los caracteres o datos que se van visualizando, se van almacenandopreviamente en una memoria llamada DD RAM para de aqu pasar a lapantalla.

    Mediante esta instruccin se establece la direccin de memoria DD RAM apartir de la cual se irn almacenando los datos a visualizar. Ejecutado estecomando, todos los datos que se escriban o lean posteriormente los hacendesde esta memoria DD RAM. Las direcciones de la 80h a la 8Fhcorresponden con los 16 caracteres del primer rengln y de la C0h a la CFhcon los 16 caracteres del segundo rengln, para este modelo.

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 Direccin de la DD RAM

    Tiempo de ejecucin:40 s

    Read busy flag et address

    Cuando el mdulo LCD est ejecutando cualquiera de estas instrucciones,tarda un cierto tiempo de ejecucin en el que no se le debe mandar ninguna

  • 5/26/2018 Practica 7

    8/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 8 -

    otra instruccin. Para ello dispone de un flag llamado BUSY (BF) que indicaque se est ejecutando una instruccin previa.

    Esta instruccin de lectura informa del estado de dicho flag adems deproporcionar el valor del contador de direcciones de la CG RAM o de la DDRAM segn la ltima que se haya empleado.

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1 BF Direccin de la CG RAM o de la DD RAM

    Tiempo de ejecucin:40 s

    Write data to cg or dd ram

    Mediante este comando se escribe en la memoria DD RAM los datos que sequieren presentar en pantalla y que sern los diferentes cdigos ASCII de loscaracteres a visualizar.

    Igualmente se escribe en la memoria CG RAM los diferentes bytes quepermiten confeccionar caracteres grficos a gusto del usuario.

    El escribir en uno u otro tipo de memoria depende de si se ha empleadopreviamente la instruccin de direccionamiento DD RAM o la dedireccionamiento CG RAM.

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1 Cdigo ASCII o byte del carcter grfico

    Tiempo de ejecucin:40 s

    Read data from cg or dd ram

    Mediante este comando se lee de la memoria DD RAM los datos quehaya almacenados y que sern los cdigos ASCII de los caracteresvisualizados.

    Igualmente se lee de la memoria CG RAM los diferentes bytes con los que seha confeccionado un determinado carcter grfico.

  • 5/26/2018 Practica 7

    9/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 9 -

    El leer de uno u otro tipo de memoria depende de si se ha empleado pre-viamente la instruccin de direccionamiento de la DD RAM o la dedireccionamiento CG RAM.

    Cdigo:

    RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1 Cdigo ASCII o byte del carcter grfico

    Tiempo de ejecucin:40 s

    Abreviaturas

    Se listan a continuacin las abreviaturas empleadas en los cdigosanteriores y su significado:

    S = 1 Desplaza la visualizacin cada vez que se escribe un dato

    S = 0 Modo normal

    I/D = 1 Incremento del cursor

    I/D = 0 Decremento del cursor

    S/C = 1 Desplaza el display

    S/C = 0 Mueve el cursor

    R/L = 1 Desplazamiento a la derecha

    R/L = 0 Desplazamiento a la izquierda

    BF = 1 Mdulo ocupado

    BF = 0 Mdulo disponible

    DL = 1 Bus de datos de 8 bitsDL = 0 Bus de datos de 4 bits

    N = 1 LCD de 2 lneas

    N = 0 LCD de 1 lnea

    F = 1 Carcter de 5x10 puntos

    F = 0 Carcter de 5x7 puntos

    B = 1 Parapdeo de cursor ON

    C = 1 Cursor ON

    D = 1 Display ON

    X = Indeterminado

  • 5/26/2018 Practica 7

    10/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 10 -

    2.7. Secuencia de inicializacin

    El mdulo LCD ejecuta automticamente una secuencia de inicio interna en elinstante de aplicarle la tensin de alimentacin si se cumplen los requisitos dealimentacin expuestos en su manual.

    Dichos requisitos consisten en que el tiempo que tarde en estabilizarse latensin desde 0.2 V hasta los 4.5V mnimos necesario sea entre 0.1 ms y 10ms. Igualmente el tiempo de desconexin debe ser como mnimo de 1 msantes de volver a conectar.

    La secuencia de inicio ejecutada es la siguiente:

    Si no se satisfacen las condiciones de alimentacin, la secuencia deinicializacin habra que realizarla por software, donde las instrucciones queaplica el usuario podran ser las expuestas anteriormente o cualquier otrasegn sus propias necesidades.

    Es importante que la primera instruccin que se enve realice una espera deunos 15 ms o mayor para la completa reinicializacin interna del mdulo LCD.

  • 5/26/2018 Practica 7

    11/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 11 -

    2.8. Conexin de LCD mediante 4 bits

    En la tarjeta EasyPIC, el visualizador LCD est conectado al Puerto D del PIC16F877A mediante un bus de 4 bits.

    Las conexiones son:

    - Las 4 lneas superiores del mdulo LCD, pines se conectana las 4 lneas superiores del Puerto D del PIC, pines .

    - Pin RS del LCD a la lnea RD2 del PIC.- Pin R/W del LCD a la lnea RD1 del PIC- Pin Enable del LCD a la lnea RD3 del PIC.

    La figura 4 muestra un esquema de la conexin del mdulo LCD con elmicrocontrolador en la EasyPIC.

    Figura 4. Conexin del mdulo LCD con el microcontrolador en la EasyPIC

  • 5/26/2018 Practica 7

    12/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 12 -

    3. LIBRERA DE SUBRUTINAS

    La librera LCD_EASY.INC contiene las subrutinas de control que permitenrealizar las tareas bsicas de control de un mdulo LCD conectado segn elcircuito de la figura 4.

    La librera LCD_EASY.INC es una versin de la librera LCD_4BIT.INC(descrita en el libro) modificada segn la conexin del mdulo LCD con elmicrocontrolador PIC16F877A en la EasyPIC (figura 4).

    Aunque esta librera est suficientemente documentada, se destacan algunasde sus subrutinas principales:

    LCD_Inicializa

    Inicializacin del mdulo LCD: Configura funciones del LCD,produce reset por software, borra memoria y enciende pantalla.Es necesario ejecutar esta subrutina siempre al principio de losprogramas que vayan a utilizar la visualizacin mediante LCD.

    LCD_EnviaComando.Escribe un comando en el registro del mdulo LCD. La palabra decomando ha sido entregada a travs del registro W. Trabaja en

    Modo Comando.

    LCD_Caracter.Escribe en la memoria DDRAM del LCD el carcter ASCIIintroducido a a travs del registro W. Trabaja en Modo Dato.

    LCD_Borra

    Borra toda la pantalla

    LCD_Linea1

    Cursor al principio de la Lnea 1.

    LCD_Linea2Cursor al principio de la Lnea 2.

    LCD_PosicionLinea1Cursor a posicin de la Lnea 1

    LCD_PosicionLinea2Cursor a posicin de la Lnea 2

    LCD_OFFPantalla apagada.

  • 5/26/2018 Practica 7

    13/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 13 -

    LCD_CursorONPantalla encendida y cursor

    LCD_CursorOFFPantalla encendida y cursor apagado.

    La librera LCD_EASY.INC hace uso de las subrutinas de retardo incluidas enla librera RETARDOS.INC.Recordad que las subrutinas de retardo de la librera RETARDOS.INC estndiseadas suponiendo que la frecuencia del oscilador es de 4 MHz.Como en la tarjeta EasyPIC, el reloj es de 8 MHz, habr que duplicar lasllamadas a las subrutinas de temporizacin para lograr los tiempos deseados.As, por ejemplo, si se desea una espera de 500ms, el cdigo a utilizar ser:

    call Retardo_500mscall Retardo_500ms

    4. PROGRAMAS EJEMPLO y EJERCICIOS

    EJEMPLO 1:a) El programa Lcd_Test.HEX, para el PIC16F877A, produce que en la

    pantalla del mdulo LCD se visualice un mensaje.

    b) Comprueba el funcionamiento del programa en la tarjeta EasyPIC.

    EJEMPLO 2:

    a) El programa LCD_01.asm, para el PIC16F877A, produce que en lapantalla del mdulo LCD se visualiza el mensaje Hola. Al terminar deescribir la frase el PIC entrar en modo de bajo consumo.

    b) Comprueba el funcionamiento del programa en la tarjeta EasyPIC.c) Modifica el programa de modo que en la pantalla del mdulo LCD se

    visualice tu nombre.

  • 5/26/2018 Practica 7

    14/14

    Ingen iera de Sis temas y Au tomtica Prcticas de Microcontroladores PIC

    - 14 -

    EJEMPLO 3:

    a) El programa LCD_02.asm, para el PIC16F877A, produce que en lapantalla del mdulo LCD se visualiza el mensaje Hola. La escritura decada carcter se ir realizando cada 500ms. Despus se borrar ycomenzar de nuevo.

    b) Comprueba el funcionamiento del programa en la tarjeta EasyPIC.c) Modifica el programa de modo que en la pantalla del mdulo LCD se

    visualice tu nombre.

    EJEMPLO 4:a) El programa LCD_04.asm, para el PIC16F877A, produce que en la

    pantalla del mdulo LCD se visualiza un contador descendente de 59hasta 0 y vuelve a repetir la cuenta ininterrumpidamente. En cada valorestar unos 500 ms.

    b) Comprueba el funcionamiento del programa en la tarjeta EasyPIC.c) Modifica el programa de modo que el contador cuente desde 30 hasta 0.d) Modifica el programa de modo que el contador cuente en modo

    ascendente desde 0 hasta 30.

    EJEMPLO 5:

    a) En el programa LCD_05.asm, cada vez que se presiona el pulsadorconectado al pin RA4 se incrementa un contador que se visualiza en elcentro de la primera lnea de la pantalla.

    b) Comprueba el funcionamiento del programa en la tarjeta EasyPIC.

    EJEMPLO 6:

    a) Escribe un programa que realice la siguiente tarea:cada vez que se presione el pulsador conectado al pin RA4se visualice elmensaje HOLAen el centro de la primera lnea de la pantalla, y cuandose presione el pin RA5 se visualice el mensaje ADIOS, tambin en elcentro de la primera lnea de la pantalla.

    b) Comprueba el funcionamiento del programa en la tarjeta EasyPIC.