Está en la página 1de 10

LABORATORIO 3

Objetivos:
Los objetivos de este laboratorio son:

 Controlar un display de 7 segmentos


 Controlar una pantalla de cristal líquido (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 números es necesario energizar los segmentos del display según lo
explicado en la Sesión 3. En la tabla 1 se muestran los valores de los segmentos del
display para representar los números 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 números 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: Visualización de los números del 0 al 9.

En este ejemplo se muestra los números 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 están definidos como DIGITO1, DIGITO2 y DIGITO3. En la
figura 2 se muestra el display de 7 segmentos en el módulo entrenador.
Figura 2. Display de 7 segmentos en el módulo 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 librerías:

 lcd_hd44780_pic16 (.h, .c)


 myutils (.h)
 custom_char (.h)

Estas librerías deben ser incluidas en el proyecto como se muestra en la figura 4.


La definición 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 módulo entrenador. La sección 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. Librerías del LCD en el proyecto Laboratorio3.


Figura 5. Definición de las conexiones del LCD con el PIC (lcd_hd44780_pic16.h)

Ejemplo 2: Impresión de un mensaje en el LCD

En la figura 4 se muestra el código básico para la impresión 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): Función para iniciar el LCD sin visualizar el cursor, de uso


obligatorio antes de usar cualquier otra función. Debe ser colocada en main().
 LCDClear(): Función para borrar la pantalla.
 LCDWriteString(“mensaje”): Función para imprimir un mensaje, el cual debe ir
entre dobles comillas.

El resultado de la compilación de nuestro programa en el módulo entrenador se muestra


en la figura 6.
Figura 6. Impresión de un mensaje en el LCD del módulo entrenador.

Ejemplo 3: Posicionar un mensaje en el LCD

La función incluida en el archivo “lcd_hd44780_pic16.c” para controlar la posición de un


mensaje es:

 LCDGotoXY (x,y): Desplaza la dirección de DDRAM a la posición x horizontal (1-


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

Figura 7. Control de desplazamiento para un mensaje.

Ejemplo 4: Impresión de números en el LCD

La función incluida en el archivo “lcd_hd44780_pic16.c” para imprimir números enteros es:

 LCDWriteInt(valor, longitud): Donde valor es un número entero y longitud son los


caracteres de valor que se imprimirán 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 dígitos. El resultado de este ejemplo se muestra en la figura 8.

En “lcd_hd44780_pic16.c” también 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. Impresión de números 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 carácter definible por el usuario. Por ello el
usuario puede definir como máximo 8 caracteres, si el tamaño del pixel elegido para el
LCD es 5x7.
En la figura 9 se ha representado la CGRAM, cada carácter está constituido por una
matriz de 5 columnas x 8 filas. Para definir un carácter, por ejemplo comprendido en las
posiciones 0x00-0x07 habrá que almacenar los valores binarios de las 8 filas del carácter,
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 corazón 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. Carácter propios

También podría gustarte