15. LCD Display

46
Carrera: Técnico Universitario en Electrónica. Profesor: Guelis Montenegro Z. Microcomputadores : LCD Display. Microcomputadores Técnico Universitario en Electrónica. 1º Semestre 2015

description

Aqui se explica Como conectar

Transcript of 15. LCD Display

Page 1: 15. LCD Display

Carrera: Técnico Universitario

en Electrónica.

Profesor: Guelis Montenegro Z.

Microcomputadores:

LCD Display.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 2: 15. LCD Display

LCD Display Un LCD (Liquid Crystal Display – Pantalla de

Cristal Líquido) es una herramienta muy utilizada

en programación que despliega información.

El LCD puede representar letras, números y

caracteres presentes en el código ASCII.

Un ejemplo típico de su uso es en las cabinas

telefónicas, donde se visualiza el costo y tiempo

de la llamada.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 3: 15. LCD Display

Código ASCII

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 4: 15. LCD Display

Código ASCII

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 5: 15. LCD Display

LCD Display Se definen por la cantidad de caracteres posibles

de escribir en una línea ( o fila) y la cantidad de

líneas (o filas) que poseen, es decir:

“número_carácteres” x “filas”

Ejemplos de módulos LCD alfanuméricos como:

20x4, 20x2, 16x4, 16x2, 8x2, etc.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 6: 15. LCD Display

LCD Display 20x4

(20 carácteres x 4 filas)

Ejemplos de LCD Display

LCD Display 8x2

(8 carácteres x 2 filas)

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 7: 15. LCD Display

LCD Display 16x2 El LCD alfanumérico a estudiar será el 16x2.

Éste permite visualizar 2 líneas de 16 carácteres

cada una. Cada carácter está compuesto por una

matriz de led’s 7x5 pequeñísimos, permitiendo

formar cualquier letra.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 8: 15. LCD Display

LCD Display 16x2

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 9: 15. LCD Display

Caracteres más usados

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 10: 15. LCD Display

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Caracteres más usados

Page 11: 15. LCD Display

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Caracteres más usados

Page 12: 15. LCD Display

Distribución de pines El LCD Display tiene 14 pines.

#PIN Símbolo Descripción

1 GND Pin conectado a GND (tierra).

2 Vcc Pin conectado a 5[v].

3 VeeAjuste para el contraste/brillo del

LCD (varía entre 0-5[v]).

4 RS Registro de control.

5 R/WRead/Write, lectura y escritura

del LCD.

6 ENEnable, habilita o deshabilita el

módulo LCD.

7-14 DB0-DB7 Bus de datos (8 bits).

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 13: 15. LCD Display

Distribución de pines PRECAUCIÓN: los pines se enumeran del 1 al

14 al dorso del LCD.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 14: 15. LCD Display

Funcionamiento Interno Se deben analizar los siguientes elementos:

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 15: 15. LCD Display

Funcionamiento Pin: “RS” RS significa Register Select.

Hay dos registros importantes en el LCDllamados:

1. Command Code Register (Código comandode registro).

2. Data Register (Registro de información).

Si RS=0, una instrucción “Command CodeRegister” es seleccionada lo que permite alusuario enviar un código.

Si RS=1, un registro de información esseleccionada lo que permite enviar informaciónpara ser visualizada en el LCD.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 16: 15. LCD Display

Funcionamiento Pin: “R/W” R/W significa Read/Write.

R/W permite enviar información hacia el LCD o

leer información de él.

1. Si R/W=0, se ejecuta la escritura en el LCD.

2. Si R/W=1, se ejecuta la lectura en el LCD.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 17: 15. LCD Display

Funcionamiento Pin: “E”. E significa Enable.

El pin Enable permite habilitar o no el LCD para

que se pueda visualizar información en él.

Si E=1, se habilita el LCD.

Si E=0, se deshabilita.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 18: 15. LCD Display

Operación en 4 u 8 bits. El LCD 16x2 puede ser operado en dos modos

diferentes: modo de 4 bits y modo de 8 bits.

En el modo de 8 bits, los pines del 7 al 14 están

conectados a ocho pines del microcontrolador.

Mientras que en el modo de 4 bits, los pines del

11 al 14 están conectados a sólo cuatro pines del

microcontrolador.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 19: 15. LCD Display

Operación en 4 u 8 bits. La principal ventaja de operar en el modo 8 bits

(DB7 – DB0) es que la carga de datos se hace

más rápida y la información puede ser

actualizada más rápidamente.

La razón obvia de operar en el modo de 4 bits

(DB7 – DB4) es ahorrar o guardar los 4 pines

restantes para realizar algún proyecto que

requiera más pines de lo pensado.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 20: 15. LCD Display

Conexionado físico

del LCD 16x2

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 21: 15. LCD Display

Conexionado físico

del LCD 16x2

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 22: 15. LCD Display

Conexionado físico del LCD

16x2 con el PIC16F877A Desde librería

“lcd.c” se deducen las

conexiones del LCD:

D0 Enable

D1 RS

D2 RW

D4 D4

D5 D5

D6 D6

D7 D7

Nota: también se puede conectarcon el puerto B.

Page 23: 15. LCD Display

Instrucciones en Lenguaje C

del LCD Display. Todos los LCD’s utilizan un fichero (driver) para

que puedan funcionar.

El compilador CCS incorpora un fichero quepermite manejar con gran facilidad el LCD. Paratales efectos, debe declararse al inicio el fichero“lcd.c” en la directiva include como sigue:

#include <lcd.c>

Ésta librería contiene la totalidad de las funcionesnecesarias para operar con el LCD.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 24: 15. LCD Display

Funciones de librería lcd.cLas funciones que otorga la librería LCD.c son:

lcd_init();

lcd_gotoxy(posición,fila);

lcd_getc(posición,fila);

printf(lcd_putc,…)

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 25: 15. LCD Display

Función: lcd_init(); Función: lcd_init();

Es la primera función que debe ser llamada.

Borra la pantalla LCD.

Configura y adapta el LCD al formato del display.

Prepara el modo encendido, el cursor apagado y

sin parpadeo.

Se declara después de void main().

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 26: 15. LCD Display

Función: lcd_gotoxy(…); Función: lcd_gotoxy(posición,línea)

Indica la posición del cursor del LCD donde se

debe escribir.

Ejemplos:

a. Escribir en posición 5 y fila 2:

lcd_gotoxy(5,2);

b. Escribir en posición 7 y fila 1:

lcd_gotoxy(7,1);Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 27: 15. LCD Display

Función: lcd_getc(…); Función: lcd_getc(posición,línea);

Lee el carácter del par (posición,línea).

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 28: 15. LCD Display

Función: printf(lcd_putc,…);

Función: printf(lcd_putc,…);

Permite escribir en el LCD.

Además, si es necesario se debe indicar:

1. \f se limpia el LCD.

2. \n el cursor va a la posición(1,2).

3. \b el cursor retrocede una posición.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 29: 15. LCD Display

Se puede definir de 3 formas:

1. printf(lcd_putc,string);

2. printf(lcd_putc,string,variables);

“string” es una cadena o arreglo de caracteres;

“variables” es una lista de variables separadas

por comas.

Función: printf(lcd_putc,…);

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 30: 15. LCD Display

Función: printf(…); Formato: printf(lcd_putc,%nt,…)

La variable “n” es opcional y puede ser:

Variable “n” Descripción

1 – 9 Para mencionar cantos caracteres se deben

especificar.

01 – 09 Para indicar la cantidad de ceros a la

izquierda.

1.1 – 9.9 Para coma flotante.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 31: 15. LCD Display

Función: printf(…); La variable “t” puede indicar:

Símbolo Descripción

c Carácter.

s Cadena o carácter (cadena=string).

u Entero sin signo (unsigned).

d Entero con signo (int).

Lu Entero largo sin signo (large unsigned).

Ld Entero largo con signo.

x Entero hexadecimal (minúsculas).

X Entero hexadecimal (mayúsculas).

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 32: 15. LCD Display

Función: printf(…); La variable “t” puede indicar:

Símbolo Descripción

Lx Entero largo hexadecimal (minúsculas).

LX Entero largo hexadecimal (mayúsculas).

f Flotante con truncado (float).

g Flotante con redondeo.

e Flotante con formato exponencial.

wEntero sin signo con decimales. La 1ª cifra

indica el total, la 2ª el número de decimales.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 33: 15. LCD Display

Ejemplos: printf(…);

Formato int H=3; int H=58;

printf(lcd_putc,“%03u”,H); 003 058

printf(lcd_putc,“%u”,H); 3 58

printf(lcd_putc,“%d”,H); 3 58

printf(lcd_putc,“%x”,H); 03 3a

printf(lcd_putc,“%X”,H); 03 3A

printf(lcd_putc,“%f”,H);

printf(lcd_putc,“%3.2w”,H); 0.03 0.58

printf(lcd_putc,“%8.1w”,H); 0.3 5.8

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 34: 15. LCD Display

Resumen: Funciones

en C del LCD.

Función: lcd_init();

Se declara después de void main().

Función: lcd_gotoxy(posición,línea);

Se declara antes de printf(…);

Función: printf(lcd_putc,string,variables);

Se declara cuando se escribe un string en el LCD.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 35: 15. LCD Display

Ejemplo1: LCD Display 16x2

Desarrolle un programa para el microcontrolador

PIC16F77A en el que utilizando un LCD Display

16x2 se muestre los siguientes textos “centrados”:

a. En la primera línea “Guelis D.” y en la

segunda, “Montenegro Z.”.

b. Luego de 2[s], se debe mostrar en la primera

línea la palabra “Tec. Electronico” y en la

segunda, “UTFSM JMC”.

c. Este proceso se vuelve a repetir.

Utilice el puerto D como salida para el Display

LCD.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 36: 15. LCD Display

Ejemplo1: LCD Display 16x2#include <16F877A.h>; #fuses XT, …, NODEBUG; #use delay (clock=4000000)

#include <lcd.c>

void main(){

set_tris_D(0); // Puerto a usar

lcd_init(); // Inicio de LCD

while(1){

printf(lcd_putc,"\f"); // Borrar por completo pantalla LCD

lcd_gotoxy(5,1); // Escribir en posición 5 y línea 1

printf(lcd_putc,"Guelis D."); // Escribir lo que hay entre comillas

lcd_gotoxy(3,2); // Escribir en posición 3 y línea 2

printf(lcd_putc,"Montenegro Z."); // Escribir lo que hay entre comillas

delay_ms(2000); // Retardo de 2 [s]

printf(lcd_putc,"\f"); // Borrar por completo pantalla LCD

lcd_gotoxy (1,1); // Escribir en posición 1 y línea 1

printf(lcd_putc,"Tec. Electronica"); // Escribir lo que hay entre comillas

lcd_gotoxy(4,2); // Escribir en posición 4 y línea 2

printf(lcd_putc,"UTFSM JMC"); // Escribir lo que hay entre comillas

delay_ms(2000); // Retardo de 2[s]

printf(lcd_putc,"\f"); // Borrar por completo pantalla LCD

}

}

Page 37: 15. LCD Display

Ejemplo1: LCD Display 16x2

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Mostrar demostración

Page 38: 15. LCD Display

Ejemplo2: LCD Display 16x2

Desarrolle un programa para el microcontrolador

PIC16F77A en el que utilizando un LCD Display

16x2 realice lo siguiente:

1. Se muestre el nombre del alumno (nombres en

línea 1 y apellidos en línea 2) si el pin RC0 está

en estado alto.

2. Por otra parte, si el pin RC0 está en estado bajo,

que se muestre su fecha de nacimiento en la

línea 1 y su edad en la línea 2.

Utilice el puerto D como salida para el Display

LCD.

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Page 39: 15. LCD Display

Ejemplo2(1): LCD Display 16x2#include <16F877A.h>; #fuses XT, …, NODEBUG; #use delay (clock=4000000);#include <lcd.c>

void main(){

set_tris_C(1); // Pin RC0 como entrada

set_tris_D(0); // Puerto a usar para el LCD

lcd_init(); // Inicio de LCD

while (1){

printf(lcd_putc,"\f"); // Borrar por completo pantalla LCD

if(input_C()==1){

lcd_gotoxy(5,1); // Escribir en posición 5, línea 1

printf(lcd_putc,"Guelis D."); // Escribir en pantalla

lcd_gotoxy(3,2); // Escribir en posición 3, línea 2

printf(lcd_putc,"Montenegro Z."); // Escribir en pantalla

}

else{

lcd_gotoxy(4,1); // Escribir en posición 4, línea 1

printf(lcd_putc,"11/04/1989"); // Escribir en pantalla

lcd_gotoxy(5,2); // Escribir en posición 5, línea 2

printf(lcd_putc,"Edad: 25"); // Escribir en pantalla

}

}

}

Si se implementa

este código. ¿Cuál

podría ser su

problema?

Page 40: 15. LCD Display

Ejemplo2(1): LCD Display 16x2

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Mostrar demostración

Page 41: 15. LCD Display

Ejemplo2(2): LCD Display 16x2#include <16F877A.h>; #fuses XT, …, NODEBUG; #use delay (clock=4000000);#include <lcd.c>

void main(){

set_tris_C(1); // Pin RC0 como entrada

set_tris_D(0); // Puerto a usar para el LCD

lcd_init(); // Inicio de LCD

while (1){

printf(lcd_putc,"\f"); // Borrar por completo pantalla LCD

while (input_C()==1){

lcd_gotoxy(5,1); // Escribir en posición 5, línea 1

printf(lcd_putc,"Guelis D."); // Escribir en pantalla

lcd_gotoxy(3,2); // Escribir en posición 3, línea 2

printf(lcd_putc,"Montenegro Z."); // Escribir en pantalla

}

printf(lcd_putc,"\f");

while (input_C()==0){

lcd_gotoxy(4,1); // Escribir en posición 4, línea 1

printf(lcd_putc,"11/04/1989"); // Escribir en pantalla

lcd_gotoxy(5,2); // Escribir en posición 5, línea 2

printf(lcd_putc,"Edad: 25"); // Escribir en pantalla

}

}

}

¿Qué sucede si no está ésta instrucción?

Se “superponen” las escrituras.

Page 42: 15. LCD Display

Ejemplo2(2): LCD Display 16x2

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Mostrar demostración

Page 43: 15. LCD Display

Ejemplo3: LCD Display 16x2

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Desarrolle un programa para el microcontrolador

PIC16F77A en el que utilizando un LCD Display

16x2 realice lo siguiente:

1. Una cuenta ascendente desde el número 0 a 50

si el pin RC0 está en 1. Para ello, en la línea 1

se muestra “Cuenta arriba” y en la línea 2,

“Numero: …”.

2. Ahora, si el pin RC0 está en 0. En la línea 1 se

muestra “Cuenta abajo” y en la línea 2,

“Numero: …”.

Utilice el puerto D como salida para el Display

LCD.

Page 44: 15. LCD Display

…MISMA INTRODUCCIÓN DE SIEMPRE…

void main(){ set_tris_C(1); set_tris_D(0); lcd_init();

while(1){

while(input_C()==1){ for(cuenta=0;(cuenta<51)&&(input_C()==1);cuenta++){

printf(lcd_putc, "\f");

lcd_gotoxy(3,1);

printf(lcd_putc,"Cuenta arriba");

lcd_gotoxy(4,2);

printf(lcd_putc,"Numero: %d", cuenta);

delay_ms(500);

}

}

while(input_C()==0){ for(cuenta=100;(cuenta>49)&&(input_C()==0);cuenta--){

printf(lcd_putc, “\F”);

lcd_gotoxy(3,1);printf(lcd_putc,"Cuenta abajo");

lcd_gotoxy(4,2);

printf(lcd_putc,"Numero: %d", cuenta);

delay_ms(500);

}

}

}

}

Page 45: 15. LCD Display

Ejemplo3: LCD Display 16x2

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015

Mostrar demostración

Page 46: 15. LCD Display

Agradecimientos

Muchas gracias por su atención…

Microcomputadores – Técnico Universitario en Electrónica. 1º Semestre 2015