lcd 2x16

Upload: api-27535945

Post on 30-May-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 LCD 2x16

    1/6

    LCD 2x16

    Descripcin: La pantalla de cristal liquido o LCD (Liquid Crystal Display) es un dispositivoControlado de visualizacin grafico para la presentacin de caracteres, smbolos o inclusodibujos (en algunos modelos), en este caso dispone de 2 filas de 16 caracteres cada una ycada 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 microcontroladorHitachi44780 y regula todos los parmetros de presentacin, este modelo es el mas comnmenteusado 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

    Funcionamiento: Para comunicarse con la pantalla LCD podemos hacerlo por medio de suspatitas de entrada de dos maneras posibles, con bus de 4 bits o con bus de 8 bits, este ultimoes el que explicare y la rutina tambin ser para este. En la siguiente figura vemos las dosmaneras posibles de conexionar el LCD con un pic16F84.

    Conexionado con bus de 4 bits

    http://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/lcd_hitachi44780.pdfhttp://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/lcd_hitachi44780.pdfhttp://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/lcd_hitachi44780.pdfhttp://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/lcd_hitachi44780.pdf
  • 8/14/2019 LCD 2x16

    2/6

    Conexionado con bus de 8 bits

    Como puede apreciarse el control de contraste se realiza al dividir la alimentacin de 5V conuna resistencia variable de 10K.

    Las lneas de datos son triestado, esto indica que cuando el LCD no esta habilitado susentradas y salidas pasan a alta impedancia

    Descripcin de 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 )

    4 RSSeleccin del registro de control/registro de datos:

    RS=0 Seleccin registro de controlRS=1 Seleccin registro de datos

    5 R/WSeal de lectura/escritura:

    R/W=0 Escritura (Write)R/W=1 Lectura (Read)

    6 EHabilitacin del modulo:

    E=0 Mdulo desconectado

    E=1 Mdulo conectado7-14 D0-D7 Bus de datos bidireccional.

    JUEGOS DE INSTRUCCIONES:

    Estas son las instrucciones para el control del modulo LCDHitachi 44780 o compatible.

    CLEAR DISPLAYBorra el mdulo LCD y coloca el cursor en la primera posicin(direccin 0). Pone el bit I/D a 1 por defecto.

    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.64mS

    http://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/lcd_hitachi44780.pdfhttp://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/lcd_hitachi44780.pdf
  • 8/14/2019 LCD 2x16

    3/6

    HOMEColoca el cursor en la posicin de inicio (direccin 0) y hace que el display comience adesplazarse desde la posicin original. El contenido de la memoria RAM de datos devisualizacin (DD RAM) permanece invariable. La direccin de la memoria RAM de datos parala visualizacin (DD RAM) es puesta a 0.

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

    0 0 0 0 0 0 0 0 1 XTiempo de ejecucin: 1.64mS

    ENTRY MODE SET

    Establece la direccin de movimiento del cursor y especifica si la visualizacin se vadesplazando a la siguiente posicin de la pantalla o no. Estas operaciones se ejecutan durantela lectura o escritura de la DD RAM o CG RAM. Para visualizar normalmente poner el bit S=0.

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

    0 0 0 0 0 0 0 1 I/D STiempo de ejecucin: 40S

    DISPLAY ON OFF CONTROL

    Activa o desactiva poniendo en ON/OFF tanto al display (D) como al cursor (C) y se establecesi 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 ejecucin: 40S

    CURSOR OR DISPLAY SHIFTMueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos devisualizacin DD RAM.

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

    0 0 0 0 0 1 S/C R/L X XTiempo de ejecucin: 40S

    FUNCTION SETEstablece el tamao de interfase con el bus de datos (DL), nmero de lneas del display (N) ytipo de carcter (F)

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

    0 0 0 0 1 DL N F X XTiempo de ejecucin: 40S

    SET THE CG RAM ADDRESSEl mdulo LCD adems de tener definidos todo el conjunto de caracteres ASCII, permite alusuario definir 4 u 8 caracteres grficos. La composicin de estos caracteres se va guardandoen una memoria llamada CG RAM con capacidad para 64 bytes. Cada carcter grfico definidopor el usuario se compone de 16 u 8 bytes que se almacenan en sucesivas posiciones de laCG RAM.

  • 8/14/2019 LCD 2x16

    4/6

    Mediante esta instruccin se establece la direccin de memoria CG RAM a partir de la cual seirn almacenando los bytes que definen un carcter grfico. Ejecutando este comando todoslos datos que se lean o escriban posteriormente, lo hacen desde esta memoria CG RAM.

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

    0 0 0 1 Direccin de la CG RAMTiempo de ejecucin: 40S

    SET THE DD RAM ADDRESS

    Los caracteres o datos que se van visualizando, se van almacenando en una memoria llamadaDD RAM para de aqu pasar a la pantalla.

    Mediante esta instruccin se establece la direccin de la memoriaDD RAM a partir de la cual se irn almacenando los datos a visualizar. Ejecutando estecomando, todos los datos que se escriban o lean posteriormente lo harn desde esta memoriaDD RAM. Las direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del primerrengln y de la C0h a la CFh con los 16 caracteres del segundo rengln, para este modelo de

    LCD.

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

    0 0 1 Direccin de la DD RAMTiempo de ejecucin: 40S

    READ BUSY FLAG & ADDRESS

    Cuando el modulo LCD esta ejecutando cualquiera de estas instrucciones, tarda un ciertotiempo de ejecucin en el que no se debe mandar ninguna instruccin. Para ello dispone de unflag 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 delcontador de direcciones de la CG RAM o de la DD RAM segn la ltima que se haya empleado.

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

    0 1 BF Direccin de la CG RAM o DD RAMTiempo de ejecucin: 40S

    WRITE DATA TO GG OR DD RAM

    Mediante este comando se escribe en la memoria DD RAM los datos que se quieren presentaren 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 confeccionarcaracteres grficos a gusto del usuario.

    El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente lainstruccin de direccionamiento DD RAM o la de direccionamiento CG RAM.

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

    1 0 Cdigo ASCII o byte del carcter grfico

    Tiempo de ejecucin: 40S

    READ DATA FROM GG RAM OR DD RAMMediante este comando se lee de la memoria DD RAM los datos que haya almacenados y quesern los cdigos ASCII de los caracteres almacenados.

    Igualmente se lee de la memoria CG RAM los diferentes bytes con los que se ha confeccionadoun determinado carcter grfico.

  • 8/14/2019 LCD 2x16

    5/6

    El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la instruccinde direccionamiento de la DD RAM o la de direccionamiento CG RAM.

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

    Tiempo de ejecucin: 40S

    ABREVIATURASAbreviaturas empleadas en los cdigos anteriores:

    S1 - Desplaza la visualizacin cada vez que se escribe un dato0 - Modo normal

    I/D1 - Incremento del cursor0 - Decremento del cursor

    S/C1 - Desplaza el display

    0 - Mueve el cursor

    R/L1 - Desplazamiento a la derecha0 - Desplazamiento a la izquierda

    BF1 - Mdulo ocupado0 - Mdulo disponible

    DL1 - Bus de datos de 8 bits0 - Bus de datos de 4 bits

    N1 - LCD de dos lneas0 - LCD de una lnea

    F1 - Carcter de 5 x 10 puntos0 - Carcter de 5 x 7 puntos

    B1 - Parpadeo del cursor ON0 - Parpadeo del cursor OFF

    C1 - Cursor ON0 - Cursor OFF

    D1 - Display ON0 - Display OFF

    X Indeterminado

    RUTINA

    Descripcin: La siguiente librera bsica de rutinas es para controlar un LCD Hitachi 44780 o

    compatible.

    Los datos o comandos a enviar al LCD los meteremos en el acumulador W antes de hacer lallamada a cualquiera de las rutinas siguientes.

    LCD_EGenera un pulso de 1S por PORTB,2 patita 6(Enable) del LCD. Si se usa una velocidad de microdiferente de 4MHz habr que ajustar este tiempo.

    LCD_BUSYChequea si el LCD esta ocupado (BUSY) y retorna dela rutina cuando ya no lo este.

    LCD_REGPone al LCD en modo de recibir comandos , espera a

    que no este ocupado y va a LCD_E.

    http://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/lcd_hitachi44780.pdfhttp://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/lcd_hitachi44780.pdf
  • 8/14/2019 LCD 2x16

    6/6

    Ejemplo: El siguiente ejemplo muestra lo fcil que es manejar un LCD. Lo que hacebsicamente es configurar el LCD, los puertos del PIC y luego mandar los datos segn los vacogiendo de la tabla de datos, para mostrar en el LCD la tpica frase "HOLA MUNDO".

    ;>

    INICIO CLRF Digito ;Pone a 0 la variable digito

    CALL LCD_PORT ;Puertos en modo LCDBCF RA,0 ;Desactiva RS del modulo LCDBCF RA,2 ;Desactiva E del modulo LCD

    START CALL LCD_INI ;Inicia LCD (CFG puertos...)MOVLW b'00000001' ;Borrar LCD y HomeCALL LCD_REGMOVLW b'00000110'CALL LCD_REGMOVLW b'00001100' ;LCD On, cursor Off,Parpadeo OffCALL LCD_REGMOVLW 0x80 ;Direccion caracterCALL LCD_REG

    REPETIR MOVF Digito,w ;W=DigitoCALL DATO_1 ;Coge el caracterIORLW 0 ;ComparaBTFSC STATUS,2 ;Es el ultimo?

    GOTO acabar ;SiCALL LCD_DATOS ;Visualiza caracterINCF Digito,f ;Incrementa numero de DigitoGOTO REPETIR ;Vuelve a escribir

    acabar nopgoto acabar ;Buclee infinito

    ;>

    DATO_1 ADDWF PCL,1RETLW 'H'RETLW 'O'RETLW 'L'RETLW 'A'RETLW ' 'RETLW 'M'

    RETLW 'U'RETLW 'N'RETLW 'D'RETLW 'O'RETLW 0x00