m micros pic16f87x vizualizador lcd

62
Ing. Héctor Jiménez M. MICROCONTROLADORES Visualizador LCD

Upload: alfredo-ramos

Post on 16-Nov-2015

51 views

Category:

Documents


1 download

DESCRIPTION

Instrucciones de como usar la LCD con el PIC16F877A

TRANSCRIPT

  • Pantallas de Cristal LquidoDisplay LCD (Liquid Crystal Display)

    Muestran cualquier carcter alfanumrico, permitiendo representar cualquier informacin que se genere

    Consta de una matriz de caracteres (normalmente de 5x7 puntos) distribuidos en una, dos, tres o cuatro lneas de 16 hasta 40 caracteres cada lnea.

  • LCD Serial

  • LCD para Grficos

  • LCDEl proceso de visualizacin es gobernado por un microcontrolador incorporado a la pantalla

    (el modelo ms utilizado es el Hitachi 44780)

    El modelo utilizado en el libro es el LM016L

    (mdulo de 2 lneas de 16 caracteres cada una)

    Su fcil manejo es ideal para dispositivos que necesitan una capacidad de visualizacin pequea o media

    La explicacin siguiente se refiere al modelo LM0I6L

    (con pequeas variaciones es vlido para cualquier otro)

  • LCD

  • Caractersticas del Mdulo LMOI6L+ 5V con consumo reducido 7,5 mW

    Pantalla de caracteres ASCII, adems de caracteres griegos, japoneses (Kanji), y smbolos matemticos

    Memoria de 40 caracteres por lnea, visualizndose 16 caracteres por lnea

    Pueden ser gobernados de dos formas:Conexin con bus de 4 bitsConexin con bus de 8 bits

  • Caractersticas del Mdulo LMOI6LMovimiento del cursor y cambio de su aspecto

    Ocho caracteres programables por el usuario

    Desplazamiento de caracteres a la izquierda o a la derecha

    La regulacin de contraste se realiza mediante un divisor de voltaje con una resistencia ajustable entre 10k y 20k en el pin VLC

    Puede eliminarse la resistencia y conectar VLC a tierra para fijar el mximo contraste permanentemente

  • Patillaje de 14 Pins

    LMO16LLas lneas del bus de datos son triestados y pasan a estado de alta impedancia cuando no est habilitado.

    SEALDEFINICINPINESFUNCINDBO....DB7Data Bus7.... 14Bus de Datos.EEnable6E0, LCD no habilitado. E=I, LCD habilitado.R/WRead/Write5R/W=O, escribe en LCDR/W=1, lee del LCD.RSRegister Select4R/S=O, Modo ComandoR/S=1, Modo Carcter.VLCLiquid Crystal Driving Voltage3Tensin para ajustar el contraste.VDDPower Supply Voltage2Tensin de alimentacin, +5VVSSGround1Masa.

  • DDRAMZona de memoria RAM - Data Display RAM, se almacenan los caracteres que se pueden representar

    Capacidad de 80 bytes, 40 por lnea, slo 32 se pueden visualizar a la vez (16 bytes por lnea)

    Almacena los cdigos ASCII de los caracteres que aparecern en pantalla

    Existe una correspondencia entre las filas de la pantalla y las posiciones consecutivas de memoria

    LMO16L

  • DDRAMDe las 80 posibles, las 2 direcciones ms importantes son:

    00h (comienzo de la primera lnea) 40h (comienzo de la segunda lnea)

    Cada vez que se escribe un dato en la DDRAM automticamente se apunta a la siguiente posicin, donde se realizar la escritura del prximo carcter.

    Zona de memoria interna no voltil donde se almacena una tabla con los 192 caracteres que pueden ser visualizados

    LMO16L

  • Caracteres Definidos en CGROMCada uno de los caracteres tiene su representacin binaria de ocho bits

    Los ocho nuevos caracteres de usuario no estan incluidos en tabla interna: se guardan en una zona de RAM denominada CGRAM (Character Generator RAM)

    Para visualizar un carcter debe recibir por el bus de datos el cdigo correspondiente

    LMO16L

  • Por ejemplo, para visualizar el carcter A el LCD debe recibir por su bus de datos el cdigo b0100 000l

  • Descripcin De Pins

  • Modos De FuncionamientoTiene 3 modos de funcionamiento principales:

    Modo Comando

    Por el bus de datos el LCD recibe instrucciones como Borrar Display, Mover Cursor, Desplazar a izquierda, etc.

    RS y R/W deben estar a 0 para indicar que se realiza una operacin de escritura.

    (La operacin en este modo tarda un mximo de 1,64 ms)LMO16L

  • Modos De Funcionamiento Modo Carcter o Dato

    Por el bus de datos se recibe un carcter a escribir en la DDRAM; se enva el carcter ASCII a visualizar

    RS = 1 y R/W = 0 para indicar que est realizando una operacin de escritura

    Tambin se le puede llamar modo carcter o modo registro(Una operacin en este modo tarda mximo 40 ms)LMO16L

  • Modos De Funcionamiento Modo lectura del Busy Flag LCD Ocupada

    En el bit 7 (Busy Flag) del bus de datos el LCD informa al microcontrolador que est ocupado

    Para ello, se lee el bus de datos con RS= 0 y R/W= 1

    Si bit 7 = 1 indica que la pantalla est ocupada realizando operaciones internas y no puede aceptar nuevas instrucciones ni datos

    Hay que esperar a que el Busy Flag valga 0 para enviarle la siguiente instruccin o carcterLMO16L

  • El modo Busy Flag se ha ideado para evitar posibles problemas de tiempo: no se realiza ninguna operacin con el LCD hasta comprobar que no est ocupado

    R/W permite leer el registro de estado en el modo Busy Flag que slo sirve para comprobar si el controlador ha terminado de realizar la instruccin que se le ha enviado y as poder enviar ms

    LMO16LModos De Funcionamiento

  • Para un control sencillo, se pueden realizar pausas despus de cada instruccin o envo de datos para no leer el registro de estado, evitando el modo de lectura del Busy Flag

    La principal ventaja es que se logra ahorrar un pin del microcontrolador porque R/W no es necesaria y se puede conectar directamente a tierra

    La deteccin del Busy Flag se sustituye por un retardo antes de realizar cualquier nueva operacin con el LCD

    El retardo debe ser mayor a 1,64 ms si trabaja en modo comando y mayor de 40 ms si trabaja en modo dato

    LMO16LModos De Funcionamiento

  • Comandos De Control

    Clear Display

    Return Home

    Entry Mode Set

    Display Control

    Cursor and display shift

    Function Set

    Set CGRAM Address

    Set DDRAM Address

    Read Busy Flag

    Write RAM

    Read RAM

  • Comandos De ControlLos comandos se envan a travs del bus de datos. Para que el LCD los reconozca hay que poner la seal RS a nivel bajo

  • Comandos De ControlClear Display (0 0 0 0 0 0 0 1)Borra pantalla y devuelve el cursor a la posicin inicial (direccin 0 de la DDRAM)

    Return Home (0 0 0 0 0 0 1 x)Cursor a direccin origen. Devuelve el cursor la posicin original de la DDRAM (direccin 00h) quedando intacto su contenido

  • Comandos De Control

    Entry Mode Set (0 0 0 0 0 1 l/D S)

    Modo Entrada. Establece las caractersticas de escritura de los datos Shift e Increment/Decrement:

    S = 0 La informacin visualizada en pantalla no se desplaza al escribir un nuevo carcter

    S = 1 La informacin visualizada se desplaza al escribir un nuevo carcter. La pantalla se desplaza en el sentido indicado por el bit l/D cuando el cursor llega al filo de la pantalla

    l/D = 1 Incremento automtico de la posicin del cursor. La posicin de la DDRAM se incrementa automticamente tras cada lectura o escritura a la misma

    1/D = 0 Decremento de la posicin del cursor. Se decrementa el puntero de la DDRAM.

  • Comandos De Control Display Control (00 0 0 1 D C B)

    Control de la pantalla:B = 0 Blink 0FF, no hay efecto de parpadeo del cursor

    B = 1 Blink ON, efecto de parpadeo con cursor rectangular

    C = 0 Cursor 0FF, el cursor no se visualiza

    C = 1 Cursor ON, el cursor es visualizado

    D = 0 Display 0FF, el display se apaga

    D = 1 Display ON, el display se enciende

  • Comandos De Control Cursor and Display Shift (0 0 0 1 S/C R/L x x)

    Control de los desplazamientos del cursor y de la pantalla:RJL =0 Left (izquierda)

    RJL = 1 Right (derecha)

    SIC = 0 El efecto de desplazamiento se aplica slo sobre el cursor sin alterar el contenido de la DDRAM

    SIC = 1 El efecto de desplazamiento se aplica sobre todo el display

  • Comandos De ControlFunction Set (0 0 1 DL N F x x)

    Caractersticas de control hardware:

    F = O Font Caracteres de 5 x 7 puntos

    F = 1 Font Caracteres de 5 x 10 puntos

    N = 0 Number Line Pantalla de 1 lnea

    N = 1 Number Line Pantalla de 2 lneas

    DL =0 Data Length Comunicacin con 4 bits.Indica al LCD que slo se utilizan las lneas DB7, DB6, DB5 y DB4 para enviarle datos y que se har enviando primero el nibble alto, y a despus el nibble bajo

    DL = 1 Data Length Comunicacin con 8 bits

  • Comandos De ControlSet CGRAM AddressSe va a escribir sobre la direccin CGRAM sealada

    Set DDRAM Address (1 d d d d d d d)Esta instruccin se utiliza para modificar el puntero a la DDRAM. Ejemplo, si la direccin es 08h se escribir en el centro de la 1 lnea

    Read Busy FlagLee el BF indicando si hay una operacin interna en curso y lee, adems, el contenido de la direccin DDRAM apuntada.

  • Conexin Mediante 4 Bits al Puerto BSin lectura del Busy flag

    (se ahorra la lnea R/W que se conecta a tierra)

    La principal ventaja es que utiliza el mnimo posible de pines (6 lneas) para el control del LCD

  • Librera De SubrutinasLCD_4BIT.INC contiene las subrutinas de control para realizar las tareas bsicas de control de un mdulo LCD

    Las subrutinas principales son:

    LCD_Inicializa Inicializa el LCD para su correcto funcionamiento. Configura funciones del LCD, produce un reset por software, borra la memoria DDRAM y enciende la pantalla.

    Es necesario ejecutarla al principio de los programas que vayan a utilizar la visualizacin mediante LCD

    El fabricante especifica que para garantizar una correcta inicializacin debe realizarse como se indica en la tabla siguiente:

  • Librera De SubrutinasLCD_CarcterVisualiza en la posicin actual del cursor el cdigo ASCII del dato contenido en el registro W

    LCD_BorraBorra toda la pantalla y pone el cursor a principio de la lnea 1

    LCD_LinealEnva el cursor al principio de la lnea 1

    LCD_Linea2Enva el cursor al principio de la lnea 2

  • Librera De SubrutinasLCD_PosicionLineal Enva el cursor a la posicin de la lnea 1 indicada por (W)Ejemplo, si (W)=0x08, al ejecutar la subrutina el cursor ir al centro de la lnea en una pantalla de 16 caracteres

    LCD_PosicionLinea2 Igual que el anterior para la lnea 2

    LCD_LineaEnBlanco Visualiza una lnea en blanco

    LCD_DosEspaciosBlanco Visualiza dos espacios en blanco

  • NotaLa librera ha sido diseada para que funcione correctamente con el siguiente circuito; donde a las lneas del bus de datos se han conectado otros dispositivos

  • NotaPor lo tanto no se debe alterar el contenido de las lneas de la parte baja del Puerto B (no son utilizadas para el LCD) (pines RB3:RBO), primero se lee estas lneas y despus se vuelve a enviar este dato sin cambiarlo

    Tambin se debe mantener la configuracin de las lneas del Puerto B cuando no se utilizan para enviar datos al LCD. Esto lo supervisa la subrutina LCD_EscribeLCD

  • Visualizacin de CaracteresComo ejemplo de aplicacin de la librera se detalla un programa donde se indica el procedimiento para visualizar los caracteres de un mensaje.

  • Visualizacin De Valores Numricos LCD_4BIT.INC contiene algunas subrutinas que permiten la visualizacin de valores numricos de 8 bits:

    LCD_ByteCompletoVisualiza el valor hexadecimal del byte que almacena el registro W en el lugar actual del cursorEjemplo, si (W)=b00001110, visualiza 0E

    LCD_ByteIgual que el anterior pero si el nibble alto es un cero visualiza un blanco en su lugarEjemplo si (W)=00001110, visualiza E (con espacio en blanco en el nibble alto); si (W)=b1l0101110, visualiza AE

    LCD_NibbleVisualiza el valor hexadecimal que almacena el nibble bajo del registro W. El nibble alto no es tenido en cuentaEjemplo, si (W)=b01010110 visualiza 6, si (W)=b10101110 visualiza E

  • El siguiente programa ejemplo permite apreciar la diferencia de funcionamiento entre cada una de estas subrutinas.

  • Conexin De LCD Mediante 8 BitsEs conectado a un puerto de 8 bits y se trata como un perifrico ms. El software de control es algo ms sencillo

    Tambin se utiliza el modo Busy Flag, por ello se conecta R/W a la lnea RA1, aunque se poda haber sustituido por un retardo de 2 ms 50 ms, como se hizo con 4 bits

  • Conexin De LCD Mediante 8 BitsLa ventaja respecto al control de 4 bits, es mayor rapidez al enviar los 8 bits de una sola vez, en lugar de empaquetados en bloque de 4 bits

    Como inconveniente se destaca el aumento de lneas de programa. Esto es importante pata el P1C16F84 ya que no tiene muchas lneas de E/S

    La librera LCD_4BIT.INC tambin funciona para este modo. Evidentemente, aunque la disposicin de las patillas es de conexin a 8 bits, funcionar como si slo estuviesen conectadas 4 lneas

  • Visualizacin De MensajesPara visualizar mensajes ms o menos largos se ocupa la librera LCD_MENS.INC que describe dos subrutinas

    LCD Mensaje visualiza mensajes fijos

    LCD_MensajeMovimiento visualiza mensajes en movimiento

  • Subrutina Mensaje Fijo

  • Subrutina Mensaje en Movimiento

  • Ejemplo De AplicacinVisualizacin de un mensaje fijo donde se aprecia la sencillez de la subrutina LCD_Mensaje

  • Up ejemplo de aplicacin podra ser el siguiente:

  • NotaPara que aparezcan las comillas, el mensaje hay que grabarlo precediendo las comillas visibles con una barra, como en el siguiente ejemplo:

    DT Estudia \Electronica\. Es tu futuro!

  • PracticasLCD_01.asm: En la pantalla del mdulo LCD se visualiza el mensaje Hola. Al terminar de escribir la frase el PIC entrar en modo de bajo consumo

    LCD_02.asm: En la pantalla se visualiza el mensaje Hola. La escritura de cada carcter se ir realizando cada 500 ms. Despus se borrar y comenzar de nuevo

    LCD_03.asm: Programa ejemplo para comprender la utilizacin de las subrutinas para la visualizacin de datos numricos. Para ello se van a utilizar sucesivamente y en este orden las subrutinas: LCD_ByteCompleto, LCD_DosEspaciosBlancos, LCD_Byte, LCD_DosEspaciosBlancos y LCD_Nibble para dos nmeros que sern:En la primera lnea un nmero con el nibble alto no cero. Por ejemplo: 1Dh.En la segunda lnea un nmero con el nibble alto igual a cero. Ej. 0Dh.As por ejemplo, para los nmeros 1D y 0D se visualizara 1D##lD##D (Primera lnea). 0D###D##D (Segunda lnea)(donde # viene a significar espacio en blanco)

  • PracticasLCD_04.asrn La pantalla visualiza un contador descendente desde 59 hasta 0 y vuelve a repetir la cuenta ininterrumpidamente. En cada valor estar unos 500 ms

    LCD_05.asm: Cada vez que presiona el pulsador conectado al pin RA4 se incrementa un contador que se visualiza en el centro de la primera lnea de la pantalla

    LCD_06.asm: Igual que el anterior pero cuando llegue a su valor mximo (por ejemplo 6) se resetea y comienza de nuevo la cuenta

    LCD_07.asm: Igual que el anterior, pero se incrementa mientras se mantenga presionado el pulsador una cuenta cada 200ms

    LCD_08.asm: Mientras se mantenga presionado el pulsador conectado al pin RA4 se incrementa un contador y visualiza en la pantalla en tres formatos: decimal, hexadecimal y binario. Un ejemplo:Primera Lnea:CE 206Segunda Unea: 11001110

  • PracticasMensaje_01.asm: En pantalla se visualiza un mensaje de menos de 16 caracteres grabado en la memoria ROM mediante la directiva DT

    Mensaje_02.asm. Repetir el anterior utilizando la subrutina LCD_Mensaje de la librera LCD_MEN.INC

    Mensaje_03.asm: En pantalla se visualizan varios mensajes, uno detrs de otro. Cada mensaje permanece visualizado durante 2 segundos. Entre mensaje y mensaje la pantalla se mantiene apagada durante 200 ms

    Mensaje_04.asm: En las dos lineas de la pantalla aparecern dos mensajes parpadeantes

    Mensaje_05.asm: En la primera Lnea de la pantalla aparecer un mensaje fijo. En la segunda lnea aparecer un mensaje parpadeante

  • PracticasMensaje_06.asm: En la pantalla se visualizarn varios mensajes diferentes. El paso de uno a otro se realiza al actuar sobre el pulsador conectado a la lnea RA4. En pantalla aparecer por ejemplo:Mensaje 2 (primera lnea)COSLADA Moderna. (segunda lnea)

    Mensaje_07.asm: En la pantalla se visualizar un mensaje largo (de ms de 16 caracteres) que se va desplazando a lo largo de la pantalla. Se utilizar la subrutina LCD_MensajeMovimiento de la librera LCD_MENS.INC

    Mensaje_08.asm: Programa para el juego de la Quiniela: Al presionar sobre el pulsador conectado aL pin RA4 en la pantalla aparecer rpidamente 1, X, 2. Cuando suelta el pulsador, permanece el signo seleccionado

    Mensaje_09.asm: En pantalla visualiza Cerrado o Abierto segn si un pulsador est presionado o no

    Ing. Hctor Jimnez M.

    MICROCONTROLADORESVisualizador LCD

  • ACM1602A

  • ACM1602A

  • ACM1602A

  • ACM1602A

  • ACM1602A

  • Funciones del EntrenadorDepurador.- Permite la ejecucin pausada paso por paso de programas, la revisin de registros, memoria o puerto, y dependiendo del modelo su modificacin, e inclusive la modificacin del propio programaSdDfDfsdDfSd YuGvkVulBhulklnjkn