Sunteți pe pagina 1din 10

LABORATORIO 3

Objetivos:
Los objetivos de este laboratorio son:

Controlar un display de 7 segmentos


Controlar una pantalla de cristal lquido (LCD)

Control del display de 7 segmentos

Las conexiones de los display de 7 segmentos con el PIC se muestran en la figura 1. Para
mostrar caracteres o nmeros es necesario energizar los segmentos del display segn lo
explicado en la Sesin 3. En la tabla 1 se muestran los valores de los segmentos del
display para representar los nmeros del 0 al 9.

Figura 1. Conexiones para el display de 7 segmentos con el PIC.


Tabla 3.1 Valor de los segmentos para generar los nmeros del 0-9

N RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 PORTC

dp g f e d c b a

0 0 0 1 1 1 1 1 1 0x3F

1 0 0 0 0 0 1 1 0 0x06

2 0 1 0 1 1 0 1 1 0x5B

3 0 1 0 0 1 1 1 1 0x4F

4 0 1 1 0 0 1 1 0 0x66

5 0 1 1 0 1 1 0 1 0x6D

6 0 1 1 1 1 1 0 1 0x7D

7 0 0 0 0 0 1 1 1 0x07

8 0 1 1 1 1 1 1 1 0x7F

9 0 1 1 0 0 1 1 1 0x67

Ejemplo 1: Visualizacin de los nmeros del 0 al 9.

En este ejemplo se muestra los nmeros del 0 al 9 cada medio segundo. El puerto de
datos del display est definido como DISPLAY (PORTC) y los pines de control del display
para el encendido y apagado estn definidos como DIGITO1, DIGITO2 y DIGITO3. En la
figura 2 se muestra el display de 7 segmentos en el mdulo entrenador.
Figura 2. Display de 7 segmentos en el mdulo entrenador.

Control de la pantalla LCD

Las conexiones de la pantalla LCD con el PIC se muestran en la figura 3.

Figura 3. Conexiones del LCD al PIC


Para trabajar con el LCD se usan las siguientes libreras:

lcd_hd44780_pic16 (.h, .c)


myutils (.h)
custom_char (.h)

Estas libreras deben ser incluidas en el proyecto como se muestra en la figura 4.


La definicin de las conexiones del PIC con el LCD se encuentra en
lcd_hd44780_pic16.h, en este archivo pueden modificarse las definiciones ya que estas
fueron hechas para trabajar con el LCD en el mdulo entrenador. La seccin donde debe
modificarse la definicion de las conexiones se muestra en la figura 5.

El archivo muyutils.h da soporte al archivo lcd_hd44780_pic16.c, es decir


contiene declaraciones para el funcionamiento del LCD, por ello debe ser incluido en el
proyecto. Por ltimo el archivo custom_char.h tiene una tabla con caracteres especiales
donde el usuario puede modificarlos o usarlos directamente.

Figura 4. Libreras del LCD en el proyecto Laboratorio3.


Figura 5. Definicin de las conexiones del LCD con el PIC (lcd_hd44780_pic16.h)

Ejemplo 2: Impresin de un mensaje en el LCD

En la figura 4 se muestra el cdigo bsico para la impresin de un mensaje en el LCD.


Las funciones para controlar el LCD se encuentran en el archivo lcd_hd44780_pic16.c,
siendo:

LCDInit(LS_NONE): Funcin para iniciar el LCD sin visualizar el cursor, de uso


obligatorio antes de usar cualquier otra funcin. Debe ser colocada en main().
LCDClear(): Funcin para borrar la pantalla.
LCDWriteString(mensaje): Funcin para imprimir un mensaje, el cual debe ir
entre dobles comillas.

El resultado de la compilacin de nuestro programa en el mdulo entrenador se muestra


en la figura 6.
Figura 6. Impresin de un mensaje en el LCD del mdulo entrenador.

Ejemplo 3: Posicionar un mensaje en el LCD

La funcin incluida en el archivo lcd_hd44780_pic16.c para controlar la posicin de un


mensaje es:

LCDGotoXY (x,y): Desplaza la direccin de DDRAM a la posicin x horizontal (1-


16) e y vertical (1era o 2da lnea).
Esta es la pantalla generada para este ejemplo.

Figura 7. Control de desplazamiento para un mensaje.

Ejemplo 4: Impresin de nmeros en el LCD

La funcin incluida en el archivo lcd_hd44780_pic16.c para imprimir nmeros enteros es:

LCDWriteInt(valor, longitud): Donde valor es un nmero entero y longitud son los


caracteres de valor que se imprimirn en el LCD.

Por ejemplo si escribimos, LCDWriteInt(20, 2) se visualizar 20 en el LCD pero si


escribimos LCDWriteInt(130, 2) se visualizar 30 en el LCD ya que solo se est
imprimiendo dos dgitos. El resultado de este ejemplo se muestra en la figura 8.

En lcd_hd44780_pic16.c tambin hay macros como:

LCDData(data): Podemos escribir un byte de datos con esta macro, por ello la
data solo va en comillas simples.
Figura 8. Impresin de nmeros en el LCD.
Ejemplo 5: Generar caracteres propios

En la memoria CGRAM se pueden definir caracteres propios. La CGRAM est dividida en


8 bloques, correspondiendo cada bloque a un carcter definible por el usuario. Por ello el
usuario puede definir como mximo 8 caracteres, si el tamao del pixel elegido para el
LCD es 5x7.
En la figura 9 se ha representado la CGRAM, cada carcter est constituido por una
matriz de 5 columnas x 8 filas. Para definir un carcter, por ejemplo comprendido en las
posiciones 0x00-0x07 habr que almacenar los valores binarios de las 8 filas del carcter,
un bit con valor 1 representa un punto encendido y un bit con valor 0 es un punto
apagado. Por ejemplo en la figura 10 tenemos el valor de los pixeles para representar un
icono de corazn en el LCD.

0x00 0x20

8 posiciones 8 posiciones
0x07 0x27
0x08 0x28

0x0F 0x2F
0x10 0x30

0x17 0x37
0x18 0x38

0x1F 0x3F

5 bits 5 bits

Figura 9. Posiciones de la memoria CGRAM

Figura 9. Carcter propios

S-ar putea să vă placă și