Está en la página 1de 11

MICROCONTROLADORES

LABORATORIO N° 04

Puertos de Entrada y Salida - Parte 2.

Participantes(s)

Foto:

Nombres:
%
participación:
Grupo
Ciclo 4C5 Electrónica y Automatización – Microcontroladores
Fecha de entrega

ELECTRONICA Y AUTOMATIZACION INDUSTRIAL


PROGRAMA DE FORMACIÓN REGULAR
Nro.
LABORATORIO MICROCONTROLADORES
Página 2 de 9
I.COMPETENCIAS ESPECÍFICAS DE LA SESIÓN
 Modificar E/S de los puertos del microcontrolador.
 Hacer diagrama de flujos de un programa.

II.CONTENIDOS A TRATAR
 Display de 7 segmentos de 1 y 2 dígitos.
 Pantalla LCD de 16x2

III.MATERIALES Y EQUIPO
 CCS Compiler instalado.
 Entrenador de PICS
 PIC16F877A
 PC con Software de simulación.

IV.FUNDAMENTO TEÓRICO
 Para la realización de este laboratorio se requiere haber realizado y aprobado la EVALUACIÓN
DE LA FASE ASÍNCRONA
 La lectura previa de la información proporcionada para el curso, como el texto y el manual del
fabricante.
 Revise la bibliografía recomendada en la FASE ASÍNCRONA.

V.SEGURIDAD EN LA EJECUCIÓN DEL LABORATORIO

Tener cuidado con el tipo y niveles de voltaje con


los que trabaja.

Antes de utilizar el multímetro, asegurarse que


está en el rango y magnitud eléctrica adecuada.

Tener cuidado en la conexión y en la desconexión


de los equipos utilizados
VI.EXPERIENCIA 1 – DISPLAY DE 7 SEGMENTOS

1. Primero vamos a recordar cómo es un display de 7 segmentos y qué tipos hay:

2. Vamos a iniciar realizando un contador con un display de ANODO COMÚN simple. Para esto
vamos a dibujar primero el circuito en PROTEUS tal como se muestra en la figura y luego
vamos a realizar el programa correspondiente:
3. Como EVIDENCIA, peque aquí la simulación en PROTEUS mostrando la ventana PIC CPU
Source Code: (incluir NOMBRES DE LOS INTEGRANTES)
4. Ahora vamos a añadir un pulsador en el PIN A0 de tal manera que el número mostrado en el
display se incremente cada vez que éste sea presionado. La función VOID main () quedaría
como sigue:

1. Agregue otro pulsador en el PIN A2 de tal manera que, SI éste es presionado, el número
mostrado en el display se DECREMENTE. Como EVIDENCIA, capture la pantalla de
PROTEUS mostrando la ventana PIC CPU Source Code: (incluir NOMBRES DE LOS
INTEGRANTES)
VII.EXPERIENCIA 2 – PANTALLA LCD DE 16x2:
1. Agregue al diagrama anterior una pantalla LCD de 16 columnas por 2 filas. Ubíquelo en el
PROTEUS como LM016L. El circuito debe quedar como se muestra a continuación:

2. Cierre TODOS los archivos con FILE-> CLOSE ALL, y cree un nuevo proyecto. Transcriba el
código mostrado de un CONTADOR ASCENDENTE – DESCENDENTE con pantalla LCD:

1. Como EVIDENCIA, capture la pantalla de PROTEUS mostrando la ventana PIC CPU Source
Code: (incluir NOMBRES DE LOS INTEGRANTES).
VIII.RETO DE PROGRAMACIÓN:

1. Una los dos códigos anteriores de tal manera que al presionar los respectivos pulsadores, el
número se muestre tanto en el Display de 7 segmentos como en la pantalla LCD:
a. Al presionar A0 (estado 0), el display debe contar de 0 a 9 y en el LCD, valor debe
cambiar de 0 a 255.
b. Al presionar A1 (estado 0), el display debe descontar desde el número donde esté y de
igual manera el VALOR en el LCD.
c. Grabe un video con una duración entre 1 y 2 minutos durante una videoconferencia;
debe mencionarse CLARAMENTE el nombre de los participantes al inicio del video.
Debe mostrarse los resultados de la simulación en PROTEUS y su respectiva
depuración. En lo posible deben participar todos los integrantes.
d. Como EVIDENCIA peque aquí el código:

#INCLUDE <16F877A.h> // MICROCONTROLADORES 4C5


#USE DELAY(clock=4M) // 10/12/2020
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP //
LABORATORIO 04
#INCLUDE <lcd.c> // BRYAN MARROQUIN PIZARRO
// GIANPIERO CAYO HUERTA
#byte PORTA=0X05 // JESUS PARICAHUA ROQUE
#byte PORTB=0X06
int dato = 0;
int Tab7Seg[10]={63,6,91,79,102,109,125,7,127,111};
int i=1;
void main()
{
set_tris_a(0b00000011);
set_tris_b(0x00);
PORTA = 0;
PORTB = 63;
lcd_init () ;
printf (lcd_putc, "CONTADOR C5");
lcd_gotoxy(1,2);
printf (lcd_putc, "valor:%3u", dato);

while (TRUE)
{
if(!input(PIN_A0))
{
dato++;
lcd_gotoxy(1,2);
printf (lcd_putc, "valor:%3u", dato);
while (!input(PIN_A0)) {}
PORTB = Tab7Seg[i];
i++;
if(i == 10) i = 0;
}
if(!input(PIN_A1))
{
dato--;
lcd_gotoxy(1,2);
printf (lcd_putc, "valor:%3u", dato);
while (!input(PIN_A1)) {}
PORTB = Tab7Seg[i];
i--;
if(i == 0) i = 9;
}
}
}
e. Subir video a Youtube o drive y pegar link en el recuadro: (asegúrese que el video sea
PUBLICO y esté bien compartido).

IX.OBSERVACIONES Y CONCLUSIONES: (Deben estar convenientemente dedactadas)

También podría gustarte