SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
CONEXIÓN DE UNA PANTALLA LCD A
     UN MICROCONTROLADOR




ALUMNOS:

José Hipólito Pascual
José Luis Fernández
Enrique Silvestre
Mario Pozo
José Ignacio Seguí




                                  1
INDICE


1-Introducción

2-¿Qué es un LCD?
2.1-Los caracteres del LCD
2.2-Diversidad de módulos LCD

3-Tipos de memorias del LCD
3.1-DD RAM (Display Data Ram)
3.2-CG RAM (carácter generator RAM)

4-Interface con el exterior y funcionamiento del módulo
4.1-Asignación de pines
4.2-Interface del display con un microcontrolador
4.3-El bus de datos
4.4-El bus de control
4.5-Conectando un módulo LCD a un Microprocesador PIC16F84 o
PIC16F87x
4.6-Secuencia de inicialización del módulo LCD
4.7-Tiempos mínimos requeridos para que una instrucción o un dato
puedan ser ejecutados

5-Comandos del LCD y ejemplo de programa




                                                                    2
1-Introducción

        Antes de aparecer los módulos LCD, se utilizaban los Displays de siete
segmentos para poder mostrar la información. Tenían una gran limitación de poder
mostrar los caracteres alfa numéricos y símbolos especiales, también consumían
demasiada corriente y ocupaban demasiado espacio físico. Posteriormente aparecieron
otros tipos de displays mas complejos que podían mostrar algunos caracteres y
símbolos; pero tenían de igual manera mucho consumo de corriente y espacio físico
ocupaban también bastante espacio físico. Finalmente aparecieron los módulos LCD o
pantallas de cristal liquido la cual tiene la capacidad de mostrar cualquier carácter alfa
numérico. Estos dispositivos ya vienen con su pantalla y toda la lógica de control
preprogramada en la fabrica y lo mejor de todo es que el consumo de corriente es
mínimo y no hace falta realizar tablas especiales como se hacia anteriormente con los
displays de siete segmentos.
        Las aplicaciones de los módulos LCD son infinitas ya que pueden ser aplicados
en la informática, comunicaciones, telefonía, instrumentación, robótica, automóviles,
equipos industriales, etc.



2-¿Qué es un LCD?
        La definición mas clara de un LCD es: una pantalla de cristal liquido que
visualiza unos ciertos caracteres. Para poder hacer funcionar un LCD, debe de estar
conectado a un circuito impreso en el que estén integrados los controladores del display
y los pines para la conexión del display. Sobre el circuito impreso se encuentra el LCD
en sí, rodeado por una estructura metálica que lo protege.
        En total se pueden visualizar 2 líneas de 16 caracteres cada una, es decir,
2x16=32 caracteres. A pesar de que el display sólo puede visualizar 16 caracteres por
línea, puede almacenar en total 40 por línea. Es el usuario el que especifica qué
16 caracteres son los que se van a visualizar.
        Tiene un consumo de energía de menos de 5mA y son ideales para dispositivos
que requieran una visualización pequeña o media.




                                                                                             3
2.1-Los caracteres del LCD

        El LCD dispone de una matriz de 5x8 puntos para representar cada carácter. En
total se pueden representar 256 caracteres diferentes. 240 caracteres están grabados
dentro del LCD y representan las letras mayúsculas, minúsculas, signos de puntuación,
números, etc... Existen 8 caracteres que pueden ser
definidos por el usuario.




       En la siguiente tabla se muestran los caracteres mas importantes que es capaz de
representar la pantalla LCD. No estan representados los caracteres correspondientes a
los códigos desde el $80 hasta el $FF, que corresponden a símbolos extraños. Los
códigos comprendidos entre el 0 y el 7 están reservados para que el usuario los defina.

Código    Carac.   Código   Carac. Código   Carac. Código   Carac. Código   Carac. Código Carac.
$20      Espacio   $30       0     $40             $50       P    $60        `     $70    p
$21         !      $31       1     $41       A     $51       Q    $61        a     $71    q
$22         “      $32       2     $42       B     $52       R    $62        b     $72    r
$23         #      $33       3     $43       C     $53       S    $63        c     $73    s
$24         $      $34       4     $44       D     $54       T    $64        d     $74    t
$25        %       $35       5     $45       E     $55       U    $65        e     $75    u
$26        &       $36       6     $46       F     $56       V    $66        f     $76    v
$27         ‘      $37       7     $47       G     $57       W    $67        g     $77    w
$28         )      $38       8     $48       H     $58       X    $68        h     $78    x
$29         (      $39       9     $49       I     $59       Y    $69        I     $79    y
$2A         *      $3A       :     $4A       J     $5A       Z    $6A        j     $7A    z
$2B         +      $3B       ;     $4B       K     $5B       [    $6B        k     $7B    {
$2C         ,      $3C       <     $4C       L     $5C            $6C        l     $7C    |
$2D         -      $3D       =     $4D       M     $5D        ]   $6D        m     $7D    }
$2E         .      $3E       >     $4E       N     $5E        ^   $6E        n     $7E
$2F         /      $3F       ?     $4F       O     $5F        -   $6F        o     $7F


                                                                                          4
2.2-Diversidad de módulos LCD

       En la actualidad existe una gran variedad de versiones, clasificadas en dos
grupos. El primer grupo esta referido a los módulos LCD de caracteres (solamente se
podrán presentar caracteres y símbolos especiales en las líneas predefinidas en el
modulo LCD) y el segundo grupo esta referido a los módulos LCD matriciales ( Se
podrán presentar caracteres, símbolos especiales y gráficos). Los módulos LCD varían
su tamaño físico dependiendo de la marca; por lo tanto en la actualidad no existe un
tamaño estándar para los módulos LCD.


3-Tipos de memorias del LCD

       Un dispositivo LCD dispone de dos tipos de memorias ambas independientes.
Estas memorias se denominan DD RAM y CG RAM.

3.1-DD RAM (Display Data Ram)

        Es la memoria encargada de almacenar los caracteres de la pantalla que se esten
visualizando en ese momento, o bien, que esten en una posición no visible. El display
tiene una capacidad de 2 lineas horizontales por 40 caracteres cada una, de los cuales
solo seran visibles 2 lineas de 16 caracteres cada una. La DDRAM tiene un tamaño de
2x40=80 bytes.

        Una vez conocida la disposición de almacenamiento del display, es facil pensar
en un display de 2 líneas de 40 caracteres sobre el que se desplaza una ventana de 2
líneas por 16 caracteres como se muestra en el dibujo.




        El orden de cuante de los caracteres seria empezando de izquierda a derecha, de
tal modo que el carácter 1 seria el primero de la izquierda y el 40 seria el situado más a
la derecha. Para localizar los caracteres se utilizan dos coordenadas (X,Y) siendo Y el



                                                                                             5
valor vertical comprendido entre 1 y 2 (valor de línea) y X el valor horizontal (1-40) que
indicara el carácter.
        En el ejemplo de arriba, vemos la frase ”ALUMNOS DE TELEMATICA
EPSA”, pero en el display solo se visualizaria “TELEMÁTICA EPSA “ que
corresponderia a los 16 caracteres visibles. Para visualizar toda la información
almacenada en el display, podremos tratar al recuadro de 2 líneas por 16 caracteres
como si se tratara de una ventana móvil. Cuando inicializamos el LCD la pantalla
tendría un aspecto como el de la siguiente figura.




         En este ejemplo, la letra E estaria situada en la posición (16,1) y la letra A en la
(7,1).

       El mapa de memoria de la DD RAM esta constituido por dos bloques de 40
bytes cada uno. El primer bloque corresponde con los 40 caracteres de la línea 1 y el
segundo bloque con los de la línea 2. Las direcciones en hexadecimal $00-$27 están
asociadas con las posiciones de almacenamiento del display (1,1) a (40,1), y las
direcciones $40-$67 con las de almacenamiento (1,2) a (40,2). A continuación vemos el
mapa de memoria DDRAM.




                                                                                                6
3.2-CG RAM (carácter generator RAM)

       La CG RAM contiene los caracteres qque pueden ser definidos por el usuario, es
decir que pueden ser personalizados. Está formada por 64 posiciones, con direcciones
$00-$3F. Cada posición es de 5 bits.

       Le memoria esta dividida en 8 bloques que corresponden a los posibles
caracteres creados por el usuario que van del 0 al 7 como se muestra en el dibujo.




                                                                                     7
Cada carácter esta constituido por una matriz de 5 columnas por 8 filas. De este
modo un 1 indica un punto de la matriz encendido, y un 0 apagado como se ve en lea
siguiente figura.




      A continuación si quisiéramos almacenar este carácter en la posición 0 de la CG
RAM, tendríamos que almacenar cada una de las líneas de 5 bits en las direcciones de la
CG RAM que van de la $00 hasta la $07 como se veia en el mapa de memoria CG
RAM.

4-Interface con el exterior y funcionamiento del módulo

4.1-Asignación de pines


                                                                                          8
A continuación podemos ver la asignación de pines en una pantalla LCD




       Los pines 1 y 2, son los utilizados para la alimentacón del módulo LCD. La
tensión utilizada es de 5 voltios.

        El pin 3 se utiliza para ajustar el contraste de la pantalla LCD. Por medio de un
potenciómetro regularemos la intensidad de los caracteres, a mayor tensión mayor
intensidad. Se suele utilizar un potenciómetro de unos 10 o 20 k, que regulara la misma
tensión que se utiliza para la alimentación.

       El pin 4 se utiliza para indicar al bus de datos si la información que le llega es
una instrucción o por el contrario es un carácter. Si RS=0 indicara que en el bus de
datos hay presente una instrucción, y si RD=1, indicará que tiene un carácter
alfanumérico.

       El pin 5 es el de escritura o lectura. Si esta a 0 el módulo escribe en pantalla el
dato que haya en el bus de datos, y si esta a 1 leeremos lo que hay en el bus de datos.

       El pin 6 es el indicado de hacer que el módulo LCD funcione, o por el contrario
no acepte ordenes de funcionamiento. Cuando E=0 no se podrá utilizar el display y
cuando E=1 se podran trnsferir datos y realizar las demás operaciones.

       Las pines del 7 al 14 son los del bus de datos.




4.2-Interface del display con un microcontrolador



                                                                                             9
Las conexiones entre un microcontrolador y una pantalla LCD, serán la del bus
de datos de 8 bits y las de los pines de control, es decir, E, RS y R/W. Debido a esto, el
microcontrolador deberá utilizar 11 bits para controlar la pantalla.




4.3-El bus de datos

        El bus de datos de un módulo LCD puede funcionar como un bus de 8 bits o
como un bus multiplexado de 4 bits. Esto permitiria ahorrar 4 patillas al
microcontrolador utilizado pero complicaria mucho el control del LCD ya que habría
que multiplexar y demultiplexar los datos. Si se realizara la multiplexación, solo
utilizadiamos los pines del D4 al D7, y primero se retransmitirían los bits más
significativos y luego los menos significativos.


4.4-El bus de control

       Esta formado por las señales RS, R/W y E. Su función se explica en el punto 4.1
sobre el funcionamiento de los pines.




4.5-Conectando un módulo LCD a un Microprocesador
PIC16F84 o PIC16F87x


                                                                                        10
Seguidamente vamos a ver como utilizar un modulo LCD con un
microcontrolador modelo PIC16F84.

       La arquitectura de un microprocesador Z-80 es uno de los componentes
que ha determinado un avance en cuanto a simplificación de componentes.

       El programa que se utiliza en este caso tiene las rutinas de tiempo
calculadas con un cristal de 4 Mhz. Las rutinas de tiempo establecidas en el
programa serían mucho mas cortas si el cristal utilizado fuese mayor de 4 Mhz,
en cambio si la velocidad del cristal fuese menor a 4 Mhz , las rutinas serían
bastante mas largas. Por lo tanto, el cristal que se gaste va a condicionar al
módulo LCD , pudiendo ocasionar problemas de velocidad y saturación.

Declaración de constantes

        Es una serie de constantes utilizadas por el programa. En la siguiente
tabla vemos un código de algunas constantes reservadas por el propio
microcontrolador PIC 16F84 y también otras de uso personal. Se trata de unos
comandos dirigidos al ensamblador.

       La sección amarilla representa los registros de funciones especiales del
microcontrolador, la sección naranja representa los Bits del puerto "A"
destinados al bus de control del modulo LCD y finalmente la sección verde
representa las constantes que definirán los tiempos de las rutinas de
temporización.

                  DECLARACION DE CONSTANTES.
          CODIGO                           COMENTARIO
    PORTB        EQU   0X06 Dirección del puerto B
    TRISB        EQU   0X06 Configurador del puerto B para I/O.
    PORTA        EQU   0X05 Dirección del puerto A
    TRISA        EQU   0X05 Configurador del puerto A para I/O.
    STATUS       EQU   0X03 Dirección del registro STATUS.
    LCD_E        EQU    2   Bit del puerto A para control de E.
    LCD_RW       EQU    1   Bit del puerto A para control de R/W.
    LCD_RS       EQU    0   Bit del puerto A para control de RS.
    RETARDO1     EQU  0X0D Constante del temporizador 1
    RETARDO2     EQU   0X00 Constante del temporizador 2




       Reserva de Memoria RAM

       El PIC16F84 tiene disponible 68 Bytes de memoria RAM. La memoria
comienza desde la dirección 0X0C ( Posición numero 13 del mapa de registros )
y termina en la posición 0X4F ( Posición numero 80 del mapa de registros ).


                                                                                  11
La instrucción ORG le indica al ensamblador donde debe comenzar a
reservar la memoria RAM que a continuación declaramos.

       En este caso, tan solo necesitamos dos bytes de memoria RAM.

        RESERVA DE MEMORIA RAM
          CODIGO                  COMENTARIO
                 ORG 0X0C Inicio de los registros de Uso general
    CONT1        RES   1 Reserva un Byte para la Variable CONT1
    CONT2        RES   1 Reserva un Byte para la Variable CONT2




Configuración de los Puertos

      El siguiente código le dice al microcontrolador PIC16F84 que el puerto
"A" con sus cinco líneas y el puerto "B" con sus ocho líneas serán configurados
como salidas para nuestro pequeño experimento.

                      CONFIGURACION DE LOS PUERTOS
                    CODIGO                 COMENTARIO
                    ORG        0X00
                    BSF        STATUS,5 Cambio al banco 1
                    MOVLW b'00000000'

                    MOVWF TRISA            Configura todo el puerto A como salida.

                    MOVLW b'00000000'
                    MOVWF TRISB            Configura todo el puerto B como salida
                    BCF        STATUS,5 Cambio al banco 0




                                                                                     12
Programa Principal

        La sección en color rosa representan las instrucciones necesarias para la
inicialización del modulo LCD. La sección en color verde representa el
programa que se encargara de escribir la palabra "IRLANDES". En la columna
de COMENTARIO del programa

                        PROGRAMA PRINCIPAL
             CODIGO                                COMENTARIO
                                     Llamada de subrutina de tiempo de 15
                                     milisegundos. Esta Subrutina es solicitada
                   CALL  TEMPO2 en el momento que se enciende el circuito
                                     para esperar que el modulo LCD estabilice
                                     sus voltajes internos.
                                     Este comando carga en el acumulador del
                                     PIC16F84 el número binario que representa
                                     el comando en el modulo LCD para trabajar
                                     con un bus de datos de 8 Bits.
                                     Posteriormente a esta instrucción se ejecuta
                   MOVLW b'00110000'
                                     una subrutina llamada LCDI ( LCD
                                     INSTRUCCION) que estará encargada de
                                     colocar el dato en el modulo LCD ( Bus de
                                     datos ) y ejecuta la secuencia requerida para
                                     el bus de control del modulo LCD.
                                     Llamada de una subrutina que estará
                                     encargada de colocar el dato en el modulo
                   CALL  LCDI        LCD ( Bus de datos ) y ejecuta la secuencia
                                     requerida para el bus de control del modulo
                                     LCD.
                                     Este comando carga en el acumulador del
                                     PIC16F84 el numero binario que representa
                                     el comando en el modulo LCD para trabajar
                                     con Activación de dos líneas en el modulo
                   MOVLW b'00111000'
                                     LCD. Posteriormente a esta instrucción se
                                     ejecuta una subrutina llamada LCDI que
                                     fue explicada en la instrucción numero 2 de
                                     esta misma tabla.
                                     Llamada de una subrutina que estará
                                     encargada de colocar el dato en el modulo
                   CALL  LCDI        LCD ( Bus de datos ) y ejecuta la secuencia
                                     requerida para el bus de control del modulo
                                     LCD.
                                     Este comando carga en el acumulador del
                                     PIC16F84 el numero binario que representa
                                     el comando en el modulo LCD para trabajar
                                     con encendido de la pantalla y el cursor en
                   MOVLW b'00001110'
                                     el modulo LCD. Posteriormente a esta
                                     instrucción se ejecuta una subrutina
                                     llamada LCDI que fue explicada en la
                                     instrucción numero 2 de esta misma tabla.
                                     Llamada de una subrutina que estará
                   CALL  LCDI        encargada de colocar el dato en el modulo
                                     LCD ( Bus de datos ) y ejecuta la secuencia


                                                                                     13
requerida para el bus de control del modulo
                                       LCD.
                                       Este comando carga en el acumulador del
                                       PIC16F84 el numero binario que representa
                                       el comando en el modulo LCD para trabajar
                                       con el desplazamiento del cursor a la
                     MOVLW b'00000110'
                                       derecha Posteriormente a esta instrucción
                                       se ejecuta una subrutina llamada LCDI que
                                       fue explicada en la instrucción numero 2 de
                                       esta misma tabla.
                                       Llamada de una subrutina que estará
                                       encargada de colocar el dato en el modulo
                     CALL  LCDI        LCD ( Bus de datos ) y ejecuta la secuencia
                                       requerida para el bus de control del modulo
                                       LCD.
                     MOVLW "I"         Coloca el carácter ASCII en W
                     CALL  LCDC        Rutina para escribir un carácter en el LCD.
                     MOVLW "R"         Coloca el carácter ASCII en W
                     CALL  LCDC        Rutina para escribir un carácter en el LCD.
                     MOVLW "L"         Coloca el carácter ASCII en W
                     CALL  LCDC        Rutina para escribir un carácter en el LCD.
                     MOVLW "A "        Coloca el carácter ASCII en W
                     CALL  LCDC        Rutina para escribir un carácter en el LCD.
                     MOVLW "N"         Coloca el carácter ASCII en W
                     CALL  LCDC        Rutina para escribir un carácter en el LCD.
                     MOVLW "D"         Coloca el carácter ASCII en W
                     CALL  LCDC        Rutina para escribir un carácter en el LCD.
                     MOVLW "E"         Coloca el carácter ASCII en W
                     CALL  LCDC        Rutina para escribir un carácter en el LCD.
                     MOVLW "S"         Coloca el carácter ASCII en W
    CICLO            GOTO CICLO




Subrutinas



Subrutina para ejecutar una Instrucción.

        Es la hemos llamado LCDI y se encarga de la configuración del bus de
control del módulo LCD, para ejecutar una instrucción presente en el bus de
datos. La instrucción es inmediatamente ejecutada por el modulo LCD cuando
se activa el ENABLE. Esta subrutina es utilizada por el programa principal
solamente cuando se requiere dar una Instrucción al modulo LCD.

    SUBRRUTINA LCDI: ( EJECUCION DE UNA INSTRUCCION )
    CODIGO:                        COMENTARIO
    LCDI     BCF      PORTA,LCD_RW Coloca "0" en el Pin RW.
             BCF      PORTA,LCD_RS Coloca "0" en el Pin RS.


                                                                                     14
BSF       PORTA,LCD_E         Coloca "1" en el Pin E
                                                 Coloca el contenido de "W" en el
                   MOVWF PORTB
                                                 bus de datos del modulo LCD.
                   BCF       PORTA,LCD_E         Coloca "0" en el Pin E
                                                 Llamada de una subrutina de
                   CALL      TEMPO1
                                                 tiempo de 40 micro segundos.
                   RETURN                        Finaliza la Rutina de tiempo.



Subrutina para escribir un dato o un carácter en el modulo LCD.

        Esta subrutina configura el bus de control del modulo LCD para escribir
un dato que esta presente en el bus de datos del modulo LCD . El dato se escribe
en la pantalla inmediatamente cuando se activa el ENABLE. Esta subrutina es
utilizada por el programa principal solamente cuando se quiere escribir un
carácter en el modulo LCD.

    SUBRRUTINA LCDC: ( ESCRIBIR UN DATO O CARACTER )
    CODIGO:                        COMENTARIO
    LCDC     BCF     PORTA,LCD_RW Coloca "0" en el Pin RW.
             BSF     PORTA,LCD_RS Coloca "1" en el Pin RS.
             BSF     PORTA,LCD_E Coloca "1" en el Pin E
                                   Coloca el contenido de "W" en el
             MOVWF PORTB
                                   bus de datos del modulo LCD.
             BCF     PORTA,LCD_E Coloca "0" en el Pin E
                                   Llamada de una subrutina de
             CALL    TEMPO1
                                   tiempo de 40 micro segundos.
             RETURN                Finaliza la Rutina de tiempo.


       Subrutina de 58 microsegundos.

       Es solicitada cuando se ejecuta una instrucción o un dato para dar el
tiempo necesario que requiere el modulo LCD para finalizar el proceso. Esta
subrutina denominada TEMPO1 tiene una curación de 58 microsegundos
basados en un cristal de 4 Mhz.

    SUBRRUTINA DE TIEMPO ( TEMPO1 )
    CODIGO:                     COMENTARIO
    TEMPO1    MOVLW RETARDO1
              MOVWF CONT1
    CICLOT1   NOP
              DECFSZ CONT1,1
              GOTO CICLOT1
              RETURN




                                                                                    15
Subrutina de 15.37 milisegundos.

        Esta subrutina de tiempo es utilizada solamente cuando se enciende la
pantalla para la estabilización de los voltajes. Esta subrutina denominada
TEMPO2 tiene una duración de 15.37 milisegundos basados en un cristal de 4
Mhz.

    SUBRRUTINA DE TIEMPO ( TEMPO2 )
    CODIGO:                     COMENTARIO
    TEMPO2    MOVLW RETARDO2
              MOVWF CONT2
    CICLOT2   CALL   TEMPO1
              DECFSZ CONT2,1
              GOTO CICLOT2
              RETURN



         Conexión gráfica de un modulo LCD a un Microcontrolador PIC16F84..




       Esquema del circuito




                                                                                16
4.6-Secuencia de inicialización del modulo LCD
        La secuencia de inicialización para cualquier módulo LCD es imprescindible, y
debe ser operada en la pantalla del módulo. La inicialización se basa en una serie de
instrucciones introducidas por nosotros y posteriormente procesadas por el módulo
LCD para su funcionamiento normal. Las instrucciones que están dentro de la
inicialización solamente se ejecutan después que se enciende el modulo LCD y no
podrán ser cambiadas posteriormente.

      Ejemplos de instrucciones que solo podrán ejecutarse cuando inicializamos el
módulo LCD:

       - Selección de la longitud del bus de datos ( 4 Bits / 8 Bits ).

       - Activar el numero de líneas que se visualizaran en el modulo LCD.

       - Encender el Modulo LCD.

        Las siguientes instrucciones también podrán ser colocadas en la inicialización,
con la diferencia que podrán ser cambiadas en cualquier parte del programa.

       - Mantener el mensaje fijo y desplazar el cursor.

       - Desplazar el mensaje y mantener el cursor fijo.

       - Hacer que el carácter señalado parpadee o no.




        El módulo ejecuta automáticamente una secuencia de inicio interna en el instante
de aplicarle la tensión, y hay unos requisitos de estabilidad.

       El tiempo mínimo que tarda en estabilizarse la tensión entre 0,2 y 4,5 voltios
debe estar comprendido entre 0,1 y 10 milisegundos.

       Por otro lado el tiempo mínimo de desconexión debe ser de 0,1 milisegundos
antes de volver a conectar.




                                                                                          17
La secuencia de inicio ejecutada es la siguiente:

     1. Se ejecuta el comando CLEAR DISPLAY borrando la pantalla. El flag
BUSY se mantiene a "1" (ocupado) durante 15 mS hasta que finaliza la inicialización.

       2. Se ejecuta el comando FUNCTION SET, que establece el interfaz con el Bus
de datos. Se elige por defecto el tamaño del bus de datos a 8 bits (DL=1) y el número de
renglones del display en 1 (N=0).

       3. Se ejecuta el comando DISPLAY ON/OFF CONTROL, que hace que el
display que en OFF (D=0); también cursor en OFF (C=0) y sin parpadeo del cursor en
(B=0)

       4. Se ejecuta el comando ENTRY MODE SET, que establece la dirección de
movimiento del cursor con autoincremento del cursor (I/D=1) y modo normal, no
desplazamiento, del display (S=0).

       Si la conexión de la alimentación no reúne las condiciones que exige el módulo
LCD, habría que realizar la secuencia de inicialización por software. En cualquier caso,
es importante enviar al LCD la primera instrucción de trabajo después de que hayan
transcurrido 15 ms, para completar dicha secuencia de inicialización.



SECUENCIA TIPICA DE INICIALIZACION DEL LCD

        En la siguiente figura se ha representado en un diagrama la secuencia de
inicialización del LCD para trabajar con un bus de datos de 8 ó 4 bits. Para el caso de 8
bits no hay ningún problema, sin embargo el caso de 4 bits es un poco más complejo.
Después de encender el LCD aparecerá la linea superior un poco más oscura que la
inferior. Esto quiere decir que el display no ha sido inicializado todavía. En el caso de 4
bits sólo se conectan los 4 bits mas significativos del LCD, dejando los otros 4 al ‘aire’.
Al enviar el código 2 (Bits 0 0 1 0) el display se configura para trabajar a 4 bits. Se
puede observar cómo la linea superior deja de estar más oscura que la inferior. A partir
de este momento las transferencias hay que realizarlas en dos partes: primero se envían
los 4 bits mas significativos y después los 4 bits menos significativos. Para confirmar
que la transferencia es a 4 bits hay que enviar el código $28; primero los bits 0 0 1 0 y
después los bits 1 0 0 0. De aquí en adelante la inicialización es igual tanto para 8 bits
como para 4, con la salvedad de que en el segundo caso hay que enviar los datos
multiplexados.




                                                                                         18
4.7-Tiempos mínimos requeridos para que una instrucción o un
dato puedan ser ejecutados.

        Los Pines de control ( E, RS y E/W ) están relacionados ya que por
medio de ellos podemos especificar la opción de ejecutar una instrucción o leer /
escribir un dato en la pantalla o la memoria RAM; sin embargo existe una
condición importante que deberá tomarse en cuenta referida directamente al
tiempo necesario que se necesita para cambiar de un estado a otro en los pines
de control. ( E, RS y R/W ). En el caso de que este tiempo sea mas pequeño que
el tiempo mínimo requerido, entonces el modulo LCD no tendrá el tiempo
suficiente para responder a las instrucciones solicitadas por el usuario y por
consecuencia se perderán los datos o instrucciones según sea el caso.

        Es decir, no debemos obviar la velocidad propia del módulo LCD con la
propia del microcontrolador que estemos utilizando, ya que si no se tiene en
cuenta la velocidad del microprocesador y esta sobrepasa la del módulo LCD,
éste último no tendrá capacidad suficiente como para ir procesando y ejecutando
todo el flujo, y por lo tanto perderemos información .

      Para ello los programas o los circuitos electrónicos que manejan un
módulo LCD deberán respetar los siguientes diagramas de tiempo:


                                                                                    19
Diagrama de tiempo para una Instrucción:

       Si se quiere enviar una instrucción al módulo LCD, colocamos el
comando en el bus de datos ( pines del 7 al 14 ). Posteriormente se ejecuta el
diagrama de tiempo requerido para una instrucción en los pines de control.

       Este diagrama de tiempo es muy sencillo de entender, tan solo usted
deberá colocar: el Pin RS = 0, el Pin R/W = 0 y el Pin E = 0.

       Luego, se cambia el estado del Pin E a 1, debiendo permanecer en dicho
estado al menos durante 450 ns. De no ser así el módulo LCD no podrá aceptar
el comando



Diagrama de tiempo para escribir un Dato:

        En el caso de querer escribir un dato al módulo LCD, colocamos el dato
en el bus ( pines del 7 al 14 ) como antes. Y entonces ejecutamos el diagrama de
tiempo requerido para escribir un dato en los pines de control.

       Ponemos el Pin RS = 1, el Pin R/W = 0 y el Pin E = 0.

       Cuando ya terminemos este proceso, se cambia el estado del Pin E = 1,
debiendo permanecer en dicho estado al menos durante 450 ns. De no ser así el
módulo LCD no podrá aceptar el comando




Diagrama de tiempo para leer un Dato:

        En el caso de querer leer un dato de la pantalla LCD o de la memoria
LCD, los pines de control hay que configurarlos así; Pin RS = 1, Pin R/W = 1 y
el Pin E = 0.


                                                                                   20
Seguidamente cambiamos el Pin E a 1, debiendo permanecer en dicho
estado al menos durante 450 ns. De no ser así el módulo LCD no podrá aceptar
la instrucción.




Notas comunes

- El pin E debe estar inicialmente en el estado lógico 0, para posteriormente
conmutar a 1, permaneciendo mínimo 450 ns.

- Cuando el Pin "E" del modulo LCD tiene el flanco de bajada, se ejecuta la
instrucción o el dato presente en el bus de control.



        En la siguiente figura vemos los cronogramas correspondientes a una operación
de escritura y otra de lectura de una forma un poco mas básica. Como ya hemos dicho
con anterioridad los tiempos mínimos se deben respetar. Las operaciones de lectura y
escritura son muy sencillas. Se ha supuesto que las transmisiones de los datos se
realizaban a 8 bits.




                                                                                   21
DIAGRAMA DE MONITORIZACIÓN DE UNA LCD




                                        22
5-Comandos del LCD y ejemplo de programa
        La forma de controlar un el LCD es a traves de comandos que se envian al
registro de control del a LCD, seleccinado al poner la señal RS (Register Select,
selecciona el registro interno que se va a leer o escribir) a nivel bajo(0). Cuando lo que
se quiere es imprimir caracteres en el display o enviar información a la CG RAM para
definir caracteres se selecciona el registro de datos poniendo RS a nivel alto (1).

         Existe un controlador de direcciones para la DD RAM y orto para la CG RAM,
el cual contienela direccion a la que se va a acceder. Modificando el control de
direcciones es posible acceder a cualquier posición de la CG RAM como de la DD
RAM. Cada vez que se realiza una acceso a memoria, el contador de direcciones se
incrementa o se decrementa automáticamente, según como se haya configurado el LCD.

  Al LCD le lleva cierto tiempo procesar cada comando enviado. Por ello, para que se
ejecute el comando especificado es necesario asegurarse de que el comando anterior ha
finalizado. Existen 2 estrategias para realizar esto:

      -La primera se basa en leer del display el bit ocupado. Si este bit se encuentra a 1
      quiere decir que el LCD esta ocupado procesando el comando anterior y por tanto
      no puede procesar nuevos comandos.

      -La segunda estrategia, menos elegante pero mas comoda de implementar,
      consiste en realizar una pausa antes de volver a enviar el siguiente comando.

      Los tiempos maximos que tarda el display en procesar los comandos estan
especificados por el fabricante y tienen un valor tipico de 40µs. Si se realiza una pausa




                                                                                         23
mayor o igual a esta se tiene la garantia de que el display ha terminadote ejecutar el
comando.

 RESUMEN DE COMANDOS:




 DESCRIPCION DE LOS COMANDOS:

     -Borrar display: Este comando borra todas las posiciones del display virtual y se
     situa el display real en la posición inicial, en la que se visualizan las posiciones
     desde la (1,1) hasta la (16,1) y desde la (1,2) hasta la (16,2). El cursor se situa en
     la posición (1,1). El comando seria “$01” y su tiempo de ejecución 1.64 ms.

     -Cursor a Home: Enviar el cursor a la posición (1,1). El display se situa en la
     posicion inicial. Comando “$02” y el tiempo de ejecución 1.64ms.

     -Estabecer modo de funcionamiento: Actualiza el contador de direcciones en la
     forma especificada y establece si el display realiza los desplazamientos o no. Estas
     acciones se llevan a cabo cada vez que se realizan una lectura o escritura en el
     display. Cuando I/D=1, el controlador de direcciones se incrementa, lo que
     provoca que el cursor avance hacia la derecha cada vez que se imprime un carácter
     en el display. Cuando I/D=0 el contador se decrementa y el cursor se mueve hacia
     la izquierda al imprimir. Con S=1 se indica al LCD que debe mover el display una
     posición a la derecha cada vez que se imprime un carácter. Con S=0 el display



                                                                                          24
debe de permanecer ‘quieto’al imprimir. El comando es “0 0 0 0 0 1 I/D S” y su
     T.E.=40µs

     -Control ON/OFF: Es la funcion encargada de activar o desactivar el display, el
     cursor y el parpadeo.
            1. Display ON/OFF: D=1 activar el LCD. Cuando D=0 el LCD funciona
                 normalmente pero no se visualiza ninguna información. Es posible
                 realizar impresiones, enviar comandos, pero nada quedara reflejado en
                 pantalla. Solo cuando D=1 se puede ver algo en el display
            2. Cursor ON/OFF: C=1 activa el Curso y al contrario, C=0 no se mueve.
            3. Parpadeo ON/OFF: B=1 hace que los caracteres situados en la posición
                 del cursor parpadeen. B=0 no hay parpadeo. El comando es “0 0 0 0 1
                 D C B” y su codigo tipico $0E, su T.E:=40µs

   -Desplazamiento del cursor/display: Desplaza una posición el cursor o el display.
   Con S/C=1 se mueve el display, S/C=0 no. R/L=1 desplaza a la derecha y R/L=0 a
   la izquierda. El Comando es 0 0 0 1 S/C R/L 0 0 y su T.E.= 40µs.

   -Modo de transferencia de la informacio: Selecciona el bus de datos del display para
   trabajar a 8 bits (DL=1) o a 4 bis (DL=0). Su comando es “0 0 1DL 1 0 0 0” y su
   T.E.=40µs.

   -Acceso a posiciones concretas de la CG RAM: Da acceso a las direcciones de la A5
   a la A0 de la CG RAM. Esta es la direccion que se copia en el contador de
   direcciones de la CG RAM. La siguiente escritura en el registro de datos display
   (RS=1) se copiara en la posición indicada de la CG RAM. Su comando “0 1 A5 A4
   A3 A2 A1 A0” y su T.E.=40µs

   -Acceso a posiciones concretas de la DD RAM: Es el mismo funcionamiento que
   en la orden anterior. Después de dicha instrucción el registro de datos se grabara en
   la posición indicada de la DD RAM.su comando”1 A6 A5 A4 A3 A2 A1 A0) y su
   T.E.=40µs

 Secuencia tipica de inicializacion del LCD:

        Para trabajar con el bus de datos de 8 bits no hay ningun problema. Pero para un
bus de datos de 4 bits es un poco mas complejo. Despues de encender el LCD aparecera
la linea superior un poco mas oscura que la inferior. Esto quiere decir que el display no
ha sido inicializado todavía. En el caso de 4 bits solo se conectan 4 bits mas
significativos del LCD, dejando los otros 4 al aire. Al enviar el codigo 2 (bits 0 0 1 0)
el display se configura para trabajar a 4 bits. Se puede observar como la linea superior
deja de estar mas oscura que la inferior. A partir de ese momento las tranferencias hay
que realizarlas en dos partes: primero se envian 4 bits mas significativos y después los 4
bits menos significativos. Para confirmar que la transferencia es a 4 bits hay que enviar
el codigo $28 ; primero los bits 0 0 1 0 y después los bits 1 0 0 0. De aquí en adelante la
inicializacion es igual tanto para 8 bits como para 4, con la salvedad de que en el
segundo caso hay que enviar los datos multiplexados.




                                                                                        25
26
Ejemplo de programa




                      27
28
29
30

Más contenido relacionado

Similar a Lcd

Similar a Lcd (20)

Electricidad y electrónica.pdf
Electricidad y electrónica.pdfElectricidad y electrónica.pdf
Electricidad y electrónica.pdf
 
Electricidad y electrónica.pdf
Electricidad y electrónica.pdfElectricidad y electrónica.pdf
Electricidad y electrónica.pdf
 
Electricidad y electrónica.pdf
Electricidad y electrónica.pdfElectricidad y electrónica.pdf
Electricidad y electrónica.pdf
 
Electricidad y electrónica.pdf
Electricidad y electrónica.pdfElectricidad y electrónica.pdf
Electricidad y electrónica.pdf
 
Electricidad y electrónica.pdf
Electricidad y electrónica.pdfElectricidad y electrónica.pdf
Electricidad y electrónica.pdf
 
Practica 2 manejo del código bcd en display de 7 segmentos.
Practica 2 manejo del código bcd en display de 7 segmentos.Practica 2 manejo del código bcd en display de 7 segmentos.
Practica 2 manejo del código bcd en display de 7 segmentos.
 
lcd
 lcd  lcd
lcd
 
Display de-7-elementos-protoboard
Display de-7-elementos-protoboardDisplay de-7-elementos-protoboard
Display de-7-elementos-protoboard
 
PANTALLAS LCD
PANTALLAS LCDPANTALLAS LCD
PANTALLAS LCD
 
Unidad III
Unidad IIIUnidad III
Unidad III
 
Proyecto2
Proyecto2Proyecto2
Proyecto2
 
Teoria lcd
Teoria lcd Teoria lcd
Teoria lcd
 
Contador
ContadorContador
Contador
 
Mm card 7
Mm card 7Mm card 7
Mm card 7
 
Conferencia n°7
Conferencia n°7Conferencia n°7
Conferencia n°7
 
Proyecto micro
Proyecto microProyecto micro
Proyecto micro
 
electricidad y voltaje.docx
electricidad y voltaje.docxelectricidad y voltaje.docx
electricidad y voltaje.docx
 
Manual de operación arduino cabezal
Manual de operación arduino cabezalManual de operación arduino cabezal
Manual de operación arduino cabezal
 
Info 001 elecii
Info 001  eleciiInfo 001  elecii
Info 001 elecii
 
electricidad y voltaje.docx
electricidad y voltaje.docxelectricidad y voltaje.docx
electricidad y voltaje.docx
 

Más de Marvin Calderon (20)

Blogs y wikis
Blogs y wikisBlogs y wikis
Blogs y wikis
 
Google apps
Google appsGoogle apps
Google apps
 
Blogs y wikis
Blogs y wikisBlogs y wikis
Blogs y wikis
 
Google apps
Google appsGoogle apps
Google apps
 
Educacion electronica
Educacion electronicaEducacion electronica
Educacion electronica
 
Mapa
MapaMapa
Mapa
 
Tic
TicTic
Tic
 
Power point
Power pointPower point
Power point
 
Eportafolio
EportafolioEportafolio
Eportafolio
 
Mapa mental blogs & wikis
Mapa mental blogs & wikisMapa mental blogs & wikis
Mapa mental blogs & wikis
 
Mapa Mental Google Apps
Mapa Mental Google Apps Mapa Mental Google Apps
Mapa Mental Google Apps
 
Mapa conceptual blogs & wikis
Mapa conceptual blogs & wikisMapa conceptual blogs & wikis
Mapa conceptual blogs & wikis
 
Mapa conceptual google apps
Mapa conceptual google appsMapa conceptual google apps
Mapa conceptual google apps
 
Examen tic
Examen ticExamen tic
Examen tic
 
Examen tic
Examen ticExamen tic
Examen tic
 
Sociedad de la informacion
Sociedad de la informacionSociedad de la informacion
Sociedad de la informacion
 
Ciberseguridad
CiberseguridadCiberseguridad
Ciberseguridad
 
Linux
LinuxLinux
Linux
 
Introduccion a la computacion
Introduccion a la computacionIntroduccion a la computacion
Introduccion a la computacion
 
Tecnologia y pais de origen
Tecnologia y pais de origenTecnologia y pais de origen
Tecnologia y pais de origen
 

Último

¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?Michael Rada
 
FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..angelicacardales1
 
Elección supervisor y comité SST 2020.pptx
Elección supervisor y comité SST 2020.pptxElección supervisor y comité SST 2020.pptx
Elección supervisor y comité SST 2020.pptxDiegoQuispeHuaman
 
Determinación de la Demanda Tecnológica del cultivo de camu camu en las Provi...
Determinación de la Demanda Tecnológica del cultivo de camu camu en las Provi...Determinación de la Demanda Tecnológica del cultivo de camu camu en las Provi...
Determinación de la Demanda Tecnológica del cultivo de camu camu en las Provi...henry2015charles
 
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoEl MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoTe Cuidamos
 
PROCEDIMIENTO CONTENCIOSO TRIBUTARIO P.pdf
PROCEDIMIENTO CONTENCIOSO TRIBUTARIO P.pdfPROCEDIMIENTO CONTENCIOSO TRIBUTARIO P.pdf
PROCEDIMIENTO CONTENCIOSO TRIBUTARIO P.pdfjosesoclle855
 
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAPLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAAlexandraSalgado28
 
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIAPRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIAgisellgarcia92
 
Gastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaGastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaInstituto de Capacitacion Aduanera
 
Habilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxHabilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxLUISALEJANDROPEREZCA1
 
VAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa ManaosVAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa Manaosmalenasilvaet7
 
SISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaSISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaBetlellyArteagaAvila
 
Administración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfAdministración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfec677944
 
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfT.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfLizCarolAmasifuenIba
 
La electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfLa electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfDiegomauricioMedinam
 
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxT.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxLizCarolAmasifuenIba
 
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxCADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxYesseniaGuzman7
 
PPT Planilla Foro logistica (1).pptDMEDMEOD
PPT Planilla Foro logistica (1).pptDMEDMEODPPT Planilla Foro logistica (1).pptDMEDMEOD
PPT Planilla Foro logistica (1).pptDMEDMEODferchuxdlinda
 
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Oxford Group
 
129813431-Diamantina-perforacion-ppt.pdf
129813431-Diamantina-perforacion-ppt.pdf129813431-Diamantina-perforacion-ppt.pdf
129813431-Diamantina-perforacion-ppt.pdfNahirleguizamon1
 

Último (20)

¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
 
FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..
 
Elección supervisor y comité SST 2020.pptx
Elección supervisor y comité SST 2020.pptxElección supervisor y comité SST 2020.pptx
Elección supervisor y comité SST 2020.pptx
 
Determinación de la Demanda Tecnológica del cultivo de camu camu en las Provi...
Determinación de la Demanda Tecnológica del cultivo de camu camu en las Provi...Determinación de la Demanda Tecnológica del cultivo de camu camu en las Provi...
Determinación de la Demanda Tecnológica del cultivo de camu camu en las Provi...
 
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoEl MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
 
PROCEDIMIENTO CONTENCIOSO TRIBUTARIO P.pdf
PROCEDIMIENTO CONTENCIOSO TRIBUTARIO P.pdfPROCEDIMIENTO CONTENCIOSO TRIBUTARIO P.pdf
PROCEDIMIENTO CONTENCIOSO TRIBUTARIO P.pdf
 
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAPLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
 
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIAPRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
 
Gastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaGastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importada
 
Habilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxHabilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptx
 
VAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa ManaosVAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa Manaos
 
SISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaSISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privada
 
Administración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfAdministración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdf
 
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfT.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
 
La electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfLa electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdf
 
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxT.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
 
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxCADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
 
PPT Planilla Foro logistica (1).pptDMEDMEOD
PPT Planilla Foro logistica (1).pptDMEDMEODPPT Planilla Foro logistica (1).pptDMEDMEOD
PPT Planilla Foro logistica (1).pptDMEDMEOD
 
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
 
129813431-Diamantina-perforacion-ppt.pdf
129813431-Diamantina-perforacion-ppt.pdf129813431-Diamantina-perforacion-ppt.pdf
129813431-Diamantina-perforacion-ppt.pdf
 

Lcd

  • 1. CONEXIÓN DE UNA PANTALLA LCD A UN MICROCONTROLADOR ALUMNOS: José Hipólito Pascual José Luis Fernández Enrique Silvestre Mario Pozo José Ignacio Seguí 1
  • 2. INDICE 1-Introducción 2-¿Qué es un LCD? 2.1-Los caracteres del LCD 2.2-Diversidad de módulos LCD 3-Tipos de memorias del LCD 3.1-DD RAM (Display Data Ram) 3.2-CG RAM (carácter generator RAM) 4-Interface con el exterior y funcionamiento del módulo 4.1-Asignación de pines 4.2-Interface del display con un microcontrolador 4.3-El bus de datos 4.4-El bus de control 4.5-Conectando un módulo LCD a un Microprocesador PIC16F84 o PIC16F87x 4.6-Secuencia de inicialización del módulo LCD 4.7-Tiempos mínimos requeridos para que una instrucción o un dato puedan ser ejecutados 5-Comandos del LCD y ejemplo de programa 2
  • 3. 1-Introducción Antes de aparecer los módulos LCD, se utilizaban los Displays de siete segmentos para poder mostrar la información. Tenían una gran limitación de poder mostrar los caracteres alfa numéricos y símbolos especiales, también consumían demasiada corriente y ocupaban demasiado espacio físico. Posteriormente aparecieron otros tipos de displays mas complejos que podían mostrar algunos caracteres y símbolos; pero tenían de igual manera mucho consumo de corriente y espacio físico ocupaban también bastante espacio físico. Finalmente aparecieron los módulos LCD o pantallas de cristal liquido la cual tiene la capacidad de mostrar cualquier carácter alfa numérico. Estos dispositivos ya vienen con su pantalla y toda la lógica de control preprogramada en la fabrica y lo mejor de todo es que el consumo de corriente es mínimo y no hace falta realizar tablas especiales como se hacia anteriormente con los displays de siete segmentos. Las aplicaciones de los módulos LCD son infinitas ya que pueden ser aplicados en la informática, comunicaciones, telefonía, instrumentación, robótica, automóviles, equipos industriales, etc. 2-¿Qué es un LCD? La definición mas clara de un LCD es: una pantalla de cristal liquido que visualiza unos ciertos caracteres. Para poder hacer funcionar un LCD, debe de estar conectado a un circuito impreso en el que estén integrados los controladores del display y los pines para la conexión del display. Sobre el circuito impreso se encuentra el LCD en sí, rodeado por una estructura metálica que lo protege. En total se pueden visualizar 2 líneas de 16 caracteres cada una, es decir, 2x16=32 caracteres. A pesar de que el display sólo puede visualizar 16 caracteres por línea, puede almacenar en total 40 por línea. Es el usuario el que especifica qué 16 caracteres son los que se van a visualizar. Tiene un consumo de energía de menos de 5mA y son ideales para dispositivos que requieran una visualización pequeña o media. 3
  • 4. 2.1-Los caracteres del LCD El LCD dispone de una matriz de 5x8 puntos para representar cada carácter. En total se pueden representar 256 caracteres diferentes. 240 caracteres están grabados dentro del LCD y representan las letras mayúsculas, minúsculas, signos de puntuación, números, etc... Existen 8 caracteres que pueden ser definidos por el usuario. En la siguiente tabla se muestran los caracteres mas importantes que es capaz de representar la pantalla LCD. No estan representados los caracteres correspondientes a los códigos desde el $80 hasta el $FF, que corresponden a símbolos extraños. Los códigos comprendidos entre el 0 y el 7 están reservados para que el usuario los defina. Código Carac. Código Carac. Código Carac. Código Carac. Código Carac. Código Carac. $20 Espacio $30 0 $40 $50 P $60 ` $70 p $21 ! $31 1 $41 A $51 Q $61 a $71 q $22 “ $32 2 $42 B $52 R $62 b $72 r $23 # $33 3 $43 C $53 S $63 c $73 s $24 $ $34 4 $44 D $54 T $64 d $74 t $25 % $35 5 $45 E $55 U $65 e $75 u $26 & $36 6 $46 F $56 V $66 f $76 v $27 ‘ $37 7 $47 G $57 W $67 g $77 w $28 ) $38 8 $48 H $58 X $68 h $78 x $29 ( $39 9 $49 I $59 Y $69 I $79 y $2A * $3A : $4A J $5A Z $6A j $7A z $2B + $3B ; $4B K $5B [ $6B k $7B { $2C , $3C < $4C L $5C $6C l $7C | $2D - $3D = $4D M $5D ] $6D m $7D } $2E . $3E > $4E N $5E ^ $6E n $7E $2F / $3F ? $4F O $5F - $6F o $7F 4
  • 5. 2.2-Diversidad de módulos LCD En la actualidad existe una gran variedad de versiones, clasificadas en dos grupos. El primer grupo esta referido a los módulos LCD de caracteres (solamente se podrán presentar caracteres y símbolos especiales en las líneas predefinidas en el modulo LCD) y el segundo grupo esta referido a los módulos LCD matriciales ( Se podrán presentar caracteres, símbolos especiales y gráficos). Los módulos LCD varían su tamaño físico dependiendo de la marca; por lo tanto en la actualidad no existe un tamaño estándar para los módulos LCD. 3-Tipos de memorias del LCD Un dispositivo LCD dispone de dos tipos de memorias ambas independientes. Estas memorias se denominan DD RAM y CG RAM. 3.1-DD RAM (Display Data Ram) Es la memoria encargada de almacenar los caracteres de la pantalla que se esten visualizando en ese momento, o bien, que esten en una posición no visible. El display tiene una capacidad de 2 lineas horizontales por 40 caracteres cada una, de los cuales solo seran visibles 2 lineas de 16 caracteres cada una. La DDRAM tiene un tamaño de 2x40=80 bytes. Una vez conocida la disposición de almacenamiento del display, es facil pensar en un display de 2 líneas de 40 caracteres sobre el que se desplaza una ventana de 2 líneas por 16 caracteres como se muestra en el dibujo. El orden de cuante de los caracteres seria empezando de izquierda a derecha, de tal modo que el carácter 1 seria el primero de la izquierda y el 40 seria el situado más a la derecha. Para localizar los caracteres se utilizan dos coordenadas (X,Y) siendo Y el 5
  • 6. valor vertical comprendido entre 1 y 2 (valor de línea) y X el valor horizontal (1-40) que indicara el carácter. En el ejemplo de arriba, vemos la frase ”ALUMNOS DE TELEMATICA EPSA”, pero en el display solo se visualizaria “TELEMÁTICA EPSA “ que corresponderia a los 16 caracteres visibles. Para visualizar toda la información almacenada en el display, podremos tratar al recuadro de 2 líneas por 16 caracteres como si se tratara de una ventana móvil. Cuando inicializamos el LCD la pantalla tendría un aspecto como el de la siguiente figura. En este ejemplo, la letra E estaria situada en la posición (16,1) y la letra A en la (7,1). El mapa de memoria de la DD RAM esta constituido por dos bloques de 40 bytes cada uno. El primer bloque corresponde con los 40 caracteres de la línea 1 y el segundo bloque con los de la línea 2. Las direcciones en hexadecimal $00-$27 están asociadas con las posiciones de almacenamiento del display (1,1) a (40,1), y las direcciones $40-$67 con las de almacenamiento (1,2) a (40,2). A continuación vemos el mapa de memoria DDRAM. 6
  • 7. 3.2-CG RAM (carácter generator RAM) La CG RAM contiene los caracteres qque pueden ser definidos por el usuario, es decir que pueden ser personalizados. Está formada por 64 posiciones, con direcciones $00-$3F. Cada posición es de 5 bits. Le memoria esta dividida en 8 bloques que corresponden a los posibles caracteres creados por el usuario que van del 0 al 7 como se muestra en el dibujo. 7
  • 8. Cada carácter esta constituido por una matriz de 5 columnas por 8 filas. De este modo un 1 indica un punto de la matriz encendido, y un 0 apagado como se ve en lea siguiente figura. A continuación si quisiéramos almacenar este carácter en la posición 0 de la CG RAM, tendríamos que almacenar cada una de las líneas de 5 bits en las direcciones de la CG RAM que van de la $00 hasta la $07 como se veia en el mapa de memoria CG RAM. 4-Interface con el exterior y funcionamiento del módulo 4.1-Asignación de pines 8
  • 9. A continuación podemos ver la asignación de pines en una pantalla LCD Los pines 1 y 2, son los utilizados para la alimentacón del módulo LCD. La tensión utilizada es de 5 voltios. El pin 3 se utiliza para ajustar el contraste de la pantalla LCD. Por medio de un potenciómetro regularemos la intensidad de los caracteres, a mayor tensión mayor intensidad. Se suele utilizar un potenciómetro de unos 10 o 20 k, que regulara la misma tensión que se utiliza para la alimentación. El pin 4 se utiliza para indicar al bus de datos si la información que le llega es una instrucción o por el contrario es un carácter. Si RS=0 indicara que en el bus de datos hay presente una instrucción, y si RD=1, indicará que tiene un carácter alfanumérico. El pin 5 es el de escritura o lectura. Si esta a 0 el módulo escribe en pantalla el dato que haya en el bus de datos, y si esta a 1 leeremos lo que hay en el bus de datos. El pin 6 es el indicado de hacer que el módulo LCD funcione, o por el contrario no acepte ordenes de funcionamiento. Cuando E=0 no se podrá utilizar el display y cuando E=1 se podran trnsferir datos y realizar las demás operaciones. Las pines del 7 al 14 son los del bus de datos. 4.2-Interface del display con un microcontrolador 9
  • 10. Las conexiones entre un microcontrolador y una pantalla LCD, serán la del bus de datos de 8 bits y las de los pines de control, es decir, E, RS y R/W. Debido a esto, el microcontrolador deberá utilizar 11 bits para controlar la pantalla. 4.3-El bus de datos El bus de datos de un módulo LCD puede funcionar como un bus de 8 bits o como un bus multiplexado de 4 bits. Esto permitiria ahorrar 4 patillas al microcontrolador utilizado pero complicaria mucho el control del LCD ya que habría que multiplexar y demultiplexar los datos. Si se realizara la multiplexación, solo utilizadiamos los pines del D4 al D7, y primero se retransmitirían los bits más significativos y luego los menos significativos. 4.4-El bus de control Esta formado por las señales RS, R/W y E. Su función se explica en el punto 4.1 sobre el funcionamiento de los pines. 4.5-Conectando un módulo LCD a un Microprocesador PIC16F84 o PIC16F87x 10
  • 11. Seguidamente vamos a ver como utilizar un modulo LCD con un microcontrolador modelo PIC16F84. La arquitectura de un microprocesador Z-80 es uno de los componentes que ha determinado un avance en cuanto a simplificación de componentes. El programa que se utiliza en este caso tiene las rutinas de tiempo calculadas con un cristal de 4 Mhz. Las rutinas de tiempo establecidas en el programa serían mucho mas cortas si el cristal utilizado fuese mayor de 4 Mhz, en cambio si la velocidad del cristal fuese menor a 4 Mhz , las rutinas serían bastante mas largas. Por lo tanto, el cristal que se gaste va a condicionar al módulo LCD , pudiendo ocasionar problemas de velocidad y saturación. Declaración de constantes Es una serie de constantes utilizadas por el programa. En la siguiente tabla vemos un código de algunas constantes reservadas por el propio microcontrolador PIC 16F84 y también otras de uso personal. Se trata de unos comandos dirigidos al ensamblador. La sección amarilla representa los registros de funciones especiales del microcontrolador, la sección naranja representa los Bits del puerto "A" destinados al bus de control del modulo LCD y finalmente la sección verde representa las constantes que definirán los tiempos de las rutinas de temporización. DECLARACION DE CONSTANTES. CODIGO COMENTARIO PORTB EQU 0X06 Dirección del puerto B TRISB EQU 0X06 Configurador del puerto B para I/O. PORTA EQU 0X05 Dirección del puerto A TRISA EQU 0X05 Configurador del puerto A para I/O. STATUS EQU 0X03 Dirección del registro STATUS. LCD_E EQU 2 Bit del puerto A para control de E. LCD_RW EQU 1 Bit del puerto A para control de R/W. LCD_RS EQU 0 Bit del puerto A para control de RS. RETARDO1 EQU 0X0D Constante del temporizador 1 RETARDO2 EQU 0X00 Constante del temporizador 2 Reserva de Memoria RAM El PIC16F84 tiene disponible 68 Bytes de memoria RAM. La memoria comienza desde la dirección 0X0C ( Posición numero 13 del mapa de registros ) y termina en la posición 0X4F ( Posición numero 80 del mapa de registros ). 11
  • 12. La instrucción ORG le indica al ensamblador donde debe comenzar a reservar la memoria RAM que a continuación declaramos. En este caso, tan solo necesitamos dos bytes de memoria RAM. RESERVA DE MEMORIA RAM CODIGO COMENTARIO ORG 0X0C Inicio de los registros de Uso general CONT1 RES 1 Reserva un Byte para la Variable CONT1 CONT2 RES 1 Reserva un Byte para la Variable CONT2 Configuración de los Puertos El siguiente código le dice al microcontrolador PIC16F84 que el puerto "A" con sus cinco líneas y el puerto "B" con sus ocho líneas serán configurados como salidas para nuestro pequeño experimento. CONFIGURACION DE LOS PUERTOS CODIGO COMENTARIO ORG 0X00 BSF STATUS,5 Cambio al banco 1 MOVLW b'00000000' MOVWF TRISA Configura todo el puerto A como salida. MOVLW b'00000000' MOVWF TRISB Configura todo el puerto B como salida BCF STATUS,5 Cambio al banco 0 12
  • 13. Programa Principal La sección en color rosa representan las instrucciones necesarias para la inicialización del modulo LCD. La sección en color verde representa el programa que se encargara de escribir la palabra "IRLANDES". En la columna de COMENTARIO del programa PROGRAMA PRINCIPAL CODIGO COMENTARIO Llamada de subrutina de tiempo de 15 milisegundos. Esta Subrutina es solicitada CALL TEMPO2 en el momento que se enciende el circuito para esperar que el modulo LCD estabilice sus voltajes internos. Este comando carga en el acumulador del PIC16F84 el número binario que representa el comando en el modulo LCD para trabajar con un bus de datos de 8 Bits. Posteriormente a esta instrucción se ejecuta MOVLW b'00110000' una subrutina llamada LCDI ( LCD INSTRUCCION) que estará encargada de colocar el dato en el modulo LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. Llamada de una subrutina que estará encargada de colocar el dato en el modulo CALL LCDI LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con Activación de dos líneas en el modulo MOVLW b'00111000' LCD. Posteriormente a esta instrucción se ejecuta una subrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla. Llamada de una subrutina que estará encargada de colocar el dato en el modulo CALL LCDI LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con encendido de la pantalla y el cursor en MOVLW b'00001110' el modulo LCD. Posteriormente a esta instrucción se ejecuta una subrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla. Llamada de una subrutina que estará CALL LCDI encargada de colocar el dato en el modulo LCD ( Bus de datos ) y ejecuta la secuencia 13
  • 14. requerida para el bus de control del modulo LCD. Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con el desplazamiento del cursor a la MOVLW b'00000110' derecha Posteriormente a esta instrucción se ejecuta una subrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla. Llamada de una subrutina que estará encargada de colocar el dato en el modulo CALL LCDI LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. MOVLW "I" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "R" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "L" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "A " Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "N" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "D" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "E" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "S" Coloca el carácter ASCII en W CICLO GOTO CICLO Subrutinas Subrutina para ejecutar una Instrucción. Es la hemos llamado LCDI y se encarga de la configuración del bus de control del módulo LCD, para ejecutar una instrucción presente en el bus de datos. La instrucción es inmediatamente ejecutada por el modulo LCD cuando se activa el ENABLE. Esta subrutina es utilizada por el programa principal solamente cuando se requiere dar una Instrucción al modulo LCD. SUBRRUTINA LCDI: ( EJECUCION DE UNA INSTRUCCION ) CODIGO: COMENTARIO LCDI BCF PORTA,LCD_RW Coloca "0" en el Pin RW. BCF PORTA,LCD_RS Coloca "0" en el Pin RS. 14
  • 15. BSF PORTA,LCD_E Coloca "1" en el Pin E Coloca el contenido de "W" en el MOVWF PORTB bus de datos del modulo LCD. BCF PORTA,LCD_E Coloca "0" en el Pin E Llamada de una subrutina de CALL TEMPO1 tiempo de 40 micro segundos. RETURN Finaliza la Rutina de tiempo. Subrutina para escribir un dato o un carácter en el modulo LCD. Esta subrutina configura el bus de control del modulo LCD para escribir un dato que esta presente en el bus de datos del modulo LCD . El dato se escribe en la pantalla inmediatamente cuando se activa el ENABLE. Esta subrutina es utilizada por el programa principal solamente cuando se quiere escribir un carácter en el modulo LCD. SUBRRUTINA LCDC: ( ESCRIBIR UN DATO O CARACTER ) CODIGO: COMENTARIO LCDC BCF PORTA,LCD_RW Coloca "0" en el Pin RW. BSF PORTA,LCD_RS Coloca "1" en el Pin RS. BSF PORTA,LCD_E Coloca "1" en el Pin E Coloca el contenido de "W" en el MOVWF PORTB bus de datos del modulo LCD. BCF PORTA,LCD_E Coloca "0" en el Pin E Llamada de una subrutina de CALL TEMPO1 tiempo de 40 micro segundos. RETURN Finaliza la Rutina de tiempo. Subrutina de 58 microsegundos. Es solicitada cuando se ejecuta una instrucción o un dato para dar el tiempo necesario que requiere el modulo LCD para finalizar el proceso. Esta subrutina denominada TEMPO1 tiene una curación de 58 microsegundos basados en un cristal de 4 Mhz. SUBRRUTINA DE TIEMPO ( TEMPO1 ) CODIGO: COMENTARIO TEMPO1 MOVLW RETARDO1 MOVWF CONT1 CICLOT1 NOP DECFSZ CONT1,1 GOTO CICLOT1 RETURN 15
  • 16. Subrutina de 15.37 milisegundos. Esta subrutina de tiempo es utilizada solamente cuando se enciende la pantalla para la estabilización de los voltajes. Esta subrutina denominada TEMPO2 tiene una duración de 15.37 milisegundos basados en un cristal de 4 Mhz. SUBRRUTINA DE TIEMPO ( TEMPO2 ) CODIGO: COMENTARIO TEMPO2 MOVLW RETARDO2 MOVWF CONT2 CICLOT2 CALL TEMPO1 DECFSZ CONT2,1 GOTO CICLOT2 RETURN Conexión gráfica de un modulo LCD a un Microcontrolador PIC16F84.. Esquema del circuito 16
  • 17. 4.6-Secuencia de inicialización del modulo LCD La secuencia de inicialización para cualquier módulo LCD es imprescindible, y debe ser operada en la pantalla del módulo. La inicialización se basa en una serie de instrucciones introducidas por nosotros y posteriormente procesadas por el módulo LCD para su funcionamiento normal. Las instrucciones que están dentro de la inicialización solamente se ejecutan después que se enciende el modulo LCD y no podrán ser cambiadas posteriormente. Ejemplos de instrucciones que solo podrán ejecutarse cuando inicializamos el módulo LCD: - Selección de la longitud del bus de datos ( 4 Bits / 8 Bits ). - Activar el numero de líneas que se visualizaran en el modulo LCD. - Encender el Modulo LCD. Las siguientes instrucciones también podrán ser colocadas en la inicialización, con la diferencia que podrán ser cambiadas en cualquier parte del programa. - Mantener el mensaje fijo y desplazar el cursor. - Desplazar el mensaje y mantener el cursor fijo. - Hacer que el carácter señalado parpadee o no. El módulo ejecuta automáticamente una secuencia de inicio interna en el instante de aplicarle la tensión, y hay unos requisitos de estabilidad. El tiempo mínimo que tarda en estabilizarse la tensión entre 0,2 y 4,5 voltios debe estar comprendido entre 0,1 y 10 milisegundos. Por otro lado el tiempo mínimo de desconexión debe ser de 0,1 milisegundos antes de volver a conectar. 17
  • 18. La secuencia de inicio ejecutada es la siguiente: 1. Se ejecuta el comando CLEAR DISPLAY borrando la pantalla. El flag BUSY se mantiene a "1" (ocupado) durante 15 mS hasta que finaliza la inicialización. 2. Se ejecuta el comando FUNCTION SET, que establece el interfaz con el Bus de datos. Se elige por defecto el tamaño del bus de datos a 8 bits (DL=1) y el número de renglones del display en 1 (N=0). 3. Se ejecuta el comando DISPLAY ON/OFF CONTROL, que hace que el display que en OFF (D=0); también cursor en OFF (C=0) y sin parpadeo del cursor en (B=0) 4. Se ejecuta el comando ENTRY MODE SET, que establece la dirección de movimiento del cursor con autoincremento del cursor (I/D=1) y modo normal, no desplazamiento, del display (S=0). Si la conexión de la alimentación no reúne las condiciones que exige el módulo LCD, habría que realizar la secuencia de inicialización por software. En cualquier caso, es importante enviar al LCD la primera instrucción de trabajo después de que hayan transcurrido 15 ms, para completar dicha secuencia de inicialización. SECUENCIA TIPICA DE INICIALIZACION DEL LCD En la siguiente figura se ha representado en un diagrama la secuencia de inicialización del LCD para trabajar con un bus de datos de 8 ó 4 bits. Para el caso de 8 bits no hay ningún problema, sin embargo el caso de 4 bits es un poco más complejo. Después de encender el LCD aparecerá la linea superior un poco más oscura que la inferior. Esto quiere decir que el display no ha sido inicializado todavía. En el caso de 4 bits sólo se conectan los 4 bits mas significativos del LCD, dejando los otros 4 al ‘aire’. Al enviar el código 2 (Bits 0 0 1 0) el display se configura para trabajar a 4 bits. Se puede observar cómo la linea superior deja de estar más oscura que la inferior. A partir de este momento las transferencias hay que realizarlas en dos partes: primero se envían los 4 bits mas significativos y después los 4 bits menos significativos. Para confirmar que la transferencia es a 4 bits hay que enviar el código $28; primero los bits 0 0 1 0 y después los bits 1 0 0 0. De aquí en adelante la inicialización es igual tanto para 8 bits como para 4, con la salvedad de que en el segundo caso hay que enviar los datos multiplexados. 18
  • 19. 4.7-Tiempos mínimos requeridos para que una instrucción o un dato puedan ser ejecutados. Los Pines de control ( E, RS y E/W ) están relacionados ya que por medio de ellos podemos especificar la opción de ejecutar una instrucción o leer / escribir un dato en la pantalla o la memoria RAM; sin embargo existe una condición importante que deberá tomarse en cuenta referida directamente al tiempo necesario que se necesita para cambiar de un estado a otro en los pines de control. ( E, RS y R/W ). En el caso de que este tiempo sea mas pequeño que el tiempo mínimo requerido, entonces el modulo LCD no tendrá el tiempo suficiente para responder a las instrucciones solicitadas por el usuario y por consecuencia se perderán los datos o instrucciones según sea el caso. Es decir, no debemos obviar la velocidad propia del módulo LCD con la propia del microcontrolador que estemos utilizando, ya que si no se tiene en cuenta la velocidad del microprocesador y esta sobrepasa la del módulo LCD, éste último no tendrá capacidad suficiente como para ir procesando y ejecutando todo el flujo, y por lo tanto perderemos información . Para ello los programas o los circuitos electrónicos que manejan un módulo LCD deberán respetar los siguientes diagramas de tiempo: 19
  • 20. Diagrama de tiempo para una Instrucción: Si se quiere enviar una instrucción al módulo LCD, colocamos el comando en el bus de datos ( pines del 7 al 14 ). Posteriormente se ejecuta el diagrama de tiempo requerido para una instrucción en los pines de control. Este diagrama de tiempo es muy sencillo de entender, tan solo usted deberá colocar: el Pin RS = 0, el Pin R/W = 0 y el Pin E = 0. Luego, se cambia el estado del Pin E a 1, debiendo permanecer en dicho estado al menos durante 450 ns. De no ser así el módulo LCD no podrá aceptar el comando Diagrama de tiempo para escribir un Dato: En el caso de querer escribir un dato al módulo LCD, colocamos el dato en el bus ( pines del 7 al 14 ) como antes. Y entonces ejecutamos el diagrama de tiempo requerido para escribir un dato en los pines de control. Ponemos el Pin RS = 1, el Pin R/W = 0 y el Pin E = 0. Cuando ya terminemos este proceso, se cambia el estado del Pin E = 1, debiendo permanecer en dicho estado al menos durante 450 ns. De no ser así el módulo LCD no podrá aceptar el comando Diagrama de tiempo para leer un Dato: En el caso de querer leer un dato de la pantalla LCD o de la memoria LCD, los pines de control hay que configurarlos así; Pin RS = 1, Pin R/W = 1 y el Pin E = 0. 20
  • 21. Seguidamente cambiamos el Pin E a 1, debiendo permanecer en dicho estado al menos durante 450 ns. De no ser así el módulo LCD no podrá aceptar la instrucción. Notas comunes - El pin E debe estar inicialmente en el estado lógico 0, para posteriormente conmutar a 1, permaneciendo mínimo 450 ns. - Cuando el Pin "E" del modulo LCD tiene el flanco de bajada, se ejecuta la instrucción o el dato presente en el bus de control. En la siguiente figura vemos los cronogramas correspondientes a una operación de escritura y otra de lectura de una forma un poco mas básica. Como ya hemos dicho con anterioridad los tiempos mínimos se deben respetar. Las operaciones de lectura y escritura son muy sencillas. Se ha supuesto que las transmisiones de los datos se realizaban a 8 bits. 21
  • 23. 5-Comandos del LCD y ejemplo de programa La forma de controlar un el LCD es a traves de comandos que se envian al registro de control del a LCD, seleccinado al poner la señal RS (Register Select, selecciona el registro interno que se va a leer o escribir) a nivel bajo(0). Cuando lo que se quiere es imprimir caracteres en el display o enviar información a la CG RAM para definir caracteres se selecciona el registro de datos poniendo RS a nivel alto (1). Existe un controlador de direcciones para la DD RAM y orto para la CG RAM, el cual contienela direccion a la que se va a acceder. Modificando el control de direcciones es posible acceder a cualquier posición de la CG RAM como de la DD RAM. Cada vez que se realiza una acceso a memoria, el contador de direcciones se incrementa o se decrementa automáticamente, según como se haya configurado el LCD. Al LCD le lleva cierto tiempo procesar cada comando enviado. Por ello, para que se ejecute el comando especificado es necesario asegurarse de que el comando anterior ha finalizado. Existen 2 estrategias para realizar esto: -La primera se basa en leer del display el bit ocupado. Si este bit se encuentra a 1 quiere decir que el LCD esta ocupado procesando el comando anterior y por tanto no puede procesar nuevos comandos. -La segunda estrategia, menos elegante pero mas comoda de implementar, consiste en realizar una pausa antes de volver a enviar el siguiente comando. Los tiempos maximos que tarda el display en procesar los comandos estan especificados por el fabricante y tienen un valor tipico de 40µs. Si se realiza una pausa 23
  • 24. mayor o igual a esta se tiene la garantia de que el display ha terminadote ejecutar el comando. RESUMEN DE COMANDOS: DESCRIPCION DE LOS COMANDOS: -Borrar display: Este comando borra todas las posiciones del display virtual y se situa el display real en la posición inicial, en la que se visualizan las posiciones desde la (1,1) hasta la (16,1) y desde la (1,2) hasta la (16,2). El cursor se situa en la posición (1,1). El comando seria “$01” y su tiempo de ejecución 1.64 ms. -Cursor a Home: Enviar el cursor a la posición (1,1). El display se situa en la posicion inicial. Comando “$02” y el tiempo de ejecución 1.64ms. -Estabecer modo de funcionamiento: Actualiza el contador de direcciones en la forma especificada y establece si el display realiza los desplazamientos o no. Estas acciones se llevan a cabo cada vez que se realizan una lectura o escritura en el display. Cuando I/D=1, el controlador de direcciones se incrementa, lo que provoca que el cursor avance hacia la derecha cada vez que se imprime un carácter en el display. Cuando I/D=0 el contador se decrementa y el cursor se mueve hacia la izquierda al imprimir. Con S=1 se indica al LCD que debe mover el display una posición a la derecha cada vez que se imprime un carácter. Con S=0 el display 24
  • 25. debe de permanecer ‘quieto’al imprimir. El comando es “0 0 0 0 0 1 I/D S” y su T.E.=40µs -Control ON/OFF: Es la funcion encargada de activar o desactivar el display, el cursor y el parpadeo. 1. Display ON/OFF: D=1 activar el LCD. Cuando D=0 el LCD funciona normalmente pero no se visualiza ninguna información. Es posible realizar impresiones, enviar comandos, pero nada quedara reflejado en pantalla. Solo cuando D=1 se puede ver algo en el display 2. Cursor ON/OFF: C=1 activa el Curso y al contrario, C=0 no se mueve. 3. Parpadeo ON/OFF: B=1 hace que los caracteres situados en la posición del cursor parpadeen. B=0 no hay parpadeo. El comando es “0 0 0 0 1 D C B” y su codigo tipico $0E, su T.E:=40µs -Desplazamiento del cursor/display: Desplaza una posición el cursor o el display. Con S/C=1 se mueve el display, S/C=0 no. R/L=1 desplaza a la derecha y R/L=0 a la izquierda. El Comando es 0 0 0 1 S/C R/L 0 0 y su T.E.= 40µs. -Modo de transferencia de la informacio: Selecciona el bus de datos del display para trabajar a 8 bits (DL=1) o a 4 bis (DL=0). Su comando es “0 0 1DL 1 0 0 0” y su T.E.=40µs. -Acceso a posiciones concretas de la CG RAM: Da acceso a las direcciones de la A5 a la A0 de la CG RAM. Esta es la direccion que se copia en el contador de direcciones de la CG RAM. La siguiente escritura en el registro de datos display (RS=1) se copiara en la posición indicada de la CG RAM. Su comando “0 1 A5 A4 A3 A2 A1 A0” y su T.E.=40µs -Acceso a posiciones concretas de la DD RAM: Es el mismo funcionamiento que en la orden anterior. Después de dicha instrucción el registro de datos se grabara en la posición indicada de la DD RAM.su comando”1 A6 A5 A4 A3 A2 A1 A0) y su T.E.=40µs Secuencia tipica de inicializacion del LCD: Para trabajar con el bus de datos de 8 bits no hay ningun problema. Pero para un bus de datos de 4 bits es un poco mas complejo. Despues de encender el LCD aparecera la linea superior un poco mas oscura que la inferior. Esto quiere decir que el display no ha sido inicializado todavía. En el caso de 4 bits solo se conectan 4 bits mas significativos del LCD, dejando los otros 4 al aire. Al enviar el codigo 2 (bits 0 0 1 0) el display se configura para trabajar a 4 bits. Se puede observar como la linea superior deja de estar mas oscura que la inferior. A partir de ese momento las tranferencias hay que realizarlas en dos partes: primero se envian 4 bits mas significativos y después los 4 bits menos significativos. Para confirmar que la transferencia es a 4 bits hay que enviar el codigo $28 ; primero los bits 0 0 1 0 y después los bits 1 0 0 0. De aquí en adelante la inicializacion es igual tanto para 8 bits como para 4, con la salvedad de que en el segundo caso hay que enviar los datos multiplexados. 25
  • 26. 26
  • 28. 28
  • 29. 29
  • 30. 30