You are on page 1of 14

MICROPROCESADORES Y

MICROCONTROLADORES

LABORATORIO Nº 4

“APLICACIONES DE
MICROCONTROLADORES:
MATRIZ DE LEDS Y DISPLAY LCD”

Alumno (os):

Programa : PI Automatización y Control Electrónico


Curso : Microprocesadores y Microcontroladores Nota:

Profesor :
Fecha de entrega : Hora:
Microprocesadores y Microcontroladores
Laboratorio 04 Página 2/10

Tema : Código
“APLICACIÓN DE MICROCONTROLADORES: MATRIZ DE LEDS Y DISPLAY LCD” Fecha
Grupo
Nombre: Lab 03

I. OBJETIVOS:
 Reconocer los tipos de datos existentes en C.
 Conocer mejor la forma de declaración de variables e inicialización.
 Crear programas en C que visualicen datos en una matriz de LED’s.
 Implementar programas y circuitos empleando displays LCD.

II. SEGURIDAD:
Advertencia:
En este laboratorio está prohibida la manipulación del hardware, conexiones
eléctricas o de red; así como la ingestión de alimentos o bebidas.

III. FUNDAMENTO TEÓRICO:


En lenguaje C es posible declarar variables para ser utilizadas en nuestros programas como elementos de memoria que
nos permitan almacenar diferentes valores que serán requeridos durante la ejecución del programa.
La sintaxis empleada para declarar una variable en el lenguaje C es:

<Tipo de dato> <nombre de variable> [= <valor inicial>]


Por ejemplo:
 int temperatura = 0;
 char letra = ‘A’
 char texto[20] = “Hola”;
 float presion;
Por lo tanto es necesario conocer algunos tipos de datos existentes en el lenguaje:
Tipo de dato Descripción
short Permite declarar variables enteras de 1 byte
int Permite declarar variables enteras de 2 bytes
float Permite declarar variable reales de simple precisión
Char Permite declarar variables de tipo carácter o cadenas de texto
Una cadena de caracteres (la variable texto en el ejemplo anterior) permite almacenar palabras o frases compuesto por
una secuencia de caracteres encerrados entre “”.
Es posible acceder a cada uno de los caracteres de la cadena a través de un índice numérico o posición. El primer
carácter está ubicado en la posición 0 (texto[0]), el segundo carácter está ubicado en la posición 1 (texto[1]). No es
posible adivinar la cantidad de caracteres de una cadena, pero se sabe que al final de la cadena existe un carácter
adicional de valor 0. Por lo tanto para ubicar el final de la cadena simplemente se debe buscar por el casillero cuyo
contenido es el número 0.
Esto significa que nuestra cadena texto, en el ejemplo anterior está conformado por 5
caracteres: ‘H’, ‘o’, ‘l’, ‘a’, 0.
Una matriz de Leds es un dispositivo que contiene un conjunto de leds agrupados en filas y
columnas.
Para encender un LED es necesario energizar adecuadamente la fila y columna en cuya
intersección se encuentra ubicado dicho LED.
Usualmente se utiliza una técnica de multiplexación para poder realizar un barrido completo de
toda la matriz fila x fila o columna x columna según como el programador decida realizar el
recorrido de los LEDS en la matriz.
Microprocesadores y Microcontroladores
Laboratorio 04 Página 3/10

IV. RECURSOS:
 En este laboratorio cada alumno trabajará con un equipo con Windows XP.
 Software de simulación Proteus.
 Software de programación en C.

V. METODOLOGÍA PARA EL DESARROLLO DE LA TAREA:


 El desarrollo del laboratorio es en grupos de dos personas.

VI. PROCEDIMIENTO:
CASO I – LEDS secuenciales con Matriz de LEDS
1. Iniciar el software Proteus.
2. Implementar el siguiente circuito empleando una matriz de Leds de 7x5 y el PIC 16F877:

3. Implementar un nuevo programa que permitirá desplazar un LED en la matriz de arriba hacia abajo y de derecha a
izquierda:
Microprocesadores y Microcontroladores
Laboratorio 04 Página 4/10

4. Ejecute el programa y verifique su funcionamiento.


5. Anote una breve descripción de la utilidad de la instrucción o elemento indicado en la siguiente tabla:
Elemento o Instrucción Descripción
int fila = 1;

int columna = 1;

fila = fila << 1;


PORTD = ~fila;

6. Implementar un nuevo programa que permitirá desplazar un LED en la matriz de izquierda a derecha y de arriba hacia
abajo:

7. Ejecute el programa y verifique su funcionamiento.


8. Como es que el programa ha logrado cambiar la dirección de desplazamiento del LED con respecto al programa
anterior. Explique detalladamente.

9. Implementar un nuevo programa que permitirá mostrar en la matriz de LEDS los diferentes caracteres de una cadena
de texto en forma secuencial.
 Para este programa será necesario generar patrones de columnas por cada carácter.
 Para la visualización de un carácter se usará la técnica denominada multiplexación, la cual consiste en enviar a la
matriz de LEDS el patrón de 1 y 0 correspondientes a 1 columna, se debe repetir dicho proceso con cada uno de
los 5 patrones generados en el programa para cada carácter.
 Al realizar este proceso a una velocidad adecuada se logrará visualizar en forma estable cada carácter de la
cadena de texto. En nuestro caso la herramienta de simulación del Proteus no permite ejecutar el programa a la
velocidad real que si lo haría el microcontrolador.
 En el programa, la cadena de texto se ha declarado en la primera línea del programa.
 El programa además hará uso de una función (subrutina) la que nos servirá para obtener cada uno de los
patrones requeridos por cada carácter.
Microprocesadores y Microcontroladores
Laboratorio 04 Página 5/10

10. Ejecute el programa y verifique su funcionamiento.


11. Complete los patrones de caracteres requeridos para las letras faltantes del alfabeto dentro de la función incluida en
el programa anterior.
12. Modifique el contenido de la cadena de texto por otra palabra que usted desee y ejecute nuevamente el programa.
Verifique que la salida muestra los caracteres de la nueva palabra que usted haya elegido.
13. Anote una breve descripción de la utilidad de la instrucción o elemento indicado en la siguiente tabla:
Elemento o Instrucción Descripción
char texto[20] = "CEBADA";

int obtener_mascara(char car, int col) {

fila = obtener_mascara( texto[posicion], x );


Microprocesadores y Microcontroladores
Laboratorio 04 Página 6/10

CASO II – DISPLAY LCD


1) Implementar el siguiente circuito empleando un display LCD y el PIC 16F84:

2) Implementar un nuevo programa que muestre algún texto en el display LCD:

3) Ejecute el programa y verifique su funcionamiento. Indique lo más importante del programa anterior:
Microprocesadores y Microcontroladores
Laboratorio 04 Página 7/10

Representacion del display en el software de simulación de PROTEUS.


Microprocesadores y Microcontroladores
Laboratorio 04 Página 8/10

Codigo de implementación del programas.

4) Anote una breve descripción de la utilidad de la instrucción o elemento indicado en la siguiente tabla:
Elemento o Instrucción Descripción
Lcd_Init( &PORTB ); Inicia la representación del display en el puerto B

LCD_Cmd( LCD_CLEAR ); Limpia el display de la lectura anterior


Microprocesadores y Microcontroladores
Laboratorio 04 Página 9/10

LCD_Out( 1, 1, “Electronica” ); Representacion de la palabra electrónica en el display en


la sección de la columna 1 y en la fila 1.

5) Modifique el programa anterior para que en la primera fila del display LCD se muestre su(s) nombre(s) y en la segunda
fila del display se muestre sus apellidos.
Microprocesadores y Microcontroladores
Laboratorio 04 Página 10/10

6) Ejecute el programa y verifique su funcionamiento.


Microprocesadores y Microcontroladores
Laboratorio 04 Página 11/10

7) Adicione (Inserte) la siguiente instrucción en la línea número 5 del programa:


LCD_Cmd( _LCD_CURSOR_OFF );
8) Ejecute nuevamente el programa y verifique su funcionamiento.
9) ¿Qué función cumple la sentencia que se ha adicionado al programa?

10) Crearemos un nuevo programa que visualice en el display LCD el valor numérico correspondiente generado por los 4
interruptores conectados en el puerto A:

11) Ejecute el programa y verifique su funcionamiento. Indique lo más importante del programa anterior:
Microprocesadores y Microcontroladores
Laboratorio 04 Página 12/10

CASO III – DISPLAY LCD – Contador Ascendente


1) Crear un nuevo programa con el siguiente contenido:
2) Ejecute el programa y verifique su funcionamiento.
3) ¿En qué rango de valores cuenta el programa anterior?

4) Modifique el programa para que el rango de conteo sea


entre 51 y 70.

5) Modifique el programa para que el rango de conteo sea entre 10 y 90 con incrementos de 5.

6) Modifique el programa anterior para que se comporte como un contador descendente. Indique que cambios son
necesarios hacerle al programa.
Microprocesadores y Microcontroladores
Laboratorio 04 Página 13/10

7) Implemente el circuito anterior empleando el PIC 16F877, conecte el display LCD en el puerto C, haga uso de un
interruptor conectado al Puerto B que permita ejecutar un contador ascendente o descendente según dicho
interruptor este abierto o cerrado respectivamente. Adjunte en la siguiente hoja el circuito y el programa resultante:

CIRCUITO PROGRAMA
Microprocesadores y Microcontroladores
Laboratorio 04 Página 14/10

VII. OBSERVACIONES Y CONCLUSIONES

………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………

You might also like