sábado, 9 de noviembre de 2019

LABORATORIO N°9

LABORATORIO N°9

PROGRAMACIÓN BÁSICA CON BUCLES DE CONTROL
1. COMPETENCIA ESPECIFICA DE LA SESIÓN.
Manejo de puertos de forma grupal e independiente para manejo de luces
Programación de sonidos mediante subrutinas.
Creación de Subrutinas mediante funciones.

Declaración de variables enteras.

2. CAPACIDAD TERMINAL.
Utilizar al microcontrolador en aplicaciones de control electrónico.
Desarrollar y ejecutar programas en un microcontrolador PIC

Programar y configurar interfaces básicas del microcontrolador.

3.SOFTWARE UTILIZADOS.

Pic c compiler:
PIC C es una herramienta que permite programar un microcontrolador por medio de lenguaje C, a diferencia del lenguaje máquina o ensamblador (ASM) que se maneja por defecto, este hace los programas más fáciles de escribir, analizar y comprender.



PICkit 2:
PICkit es una familia de programadores para microcontroladores PIC fabricados por Microchip Technology . Se utilizan para programar y depurar microcontroladores.


4.DESCRIPCIÓN DEL PIC16F877A.
Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, su consumo de potencia es muy bajo y además es completamente estatico (esto quiere decir que el reloj puede detenerse y los datos de memoria no se pierden) capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.

Principales características:
 Procesador de arquitectura RISC (Reduced Instruction Set Computer) avanzada
 Juego de 35 palabras de instrucción a aprender.
 Velocidad de operación: Frecuencia de entrada 20 Mhz, ciclos de instrucción de 200ns.
 Hasta 8K en palabras de 14 bits para la memoria tipo flash.
 Hasta 368 Bytes de memoria de datos RAM.
 Hasta 256 Bytes de memoria datos EEPROM
 Capacidad de interrupción de hasta 14 fuentes internas y externas
 Power on reset
 Power-up Timer (PWRT) y Oscillator Start-up Timer (OST)
 Compatible modo SLeep
 Protección de código Programable
 Voltaje de operación entre 2.0 y 5.5 voltios
 Corriente máxima 25 mA.
 Bajo consumo.

Puertos del PIC16F887A

5.DESCRIPCIÓN DE LOS PRINCIPALES BUCLES DE CONTROL
5.1 BUCLE WHILE.

El bucle while permite ejecutar una o mas sentencias en tanto se cumpla una condición. Si la condición deja de cumplirse, se dejan de ejecutar la o las instrucciones y se “sale del bloque while para continuar procesando las instrucciones que se encuentran después del mismo.

while (condición) 
sentencia; 
while (condición) 
sentencia1; 
sentencia2; 
sentencia3; 
sentencia4;
 . 
 . 
Senttencia_n;
 }

5.2 BUCLE IF-ELSE.

Forma general:
 if (condición) 
sentencia1;
 else
 sentencia2; 

Si la condición es verdadera (se cumple), se ejecuta la sentencia1, de lo contrario la sentencia2. (esta estructura suena de la siguiente forma: “si la (condición) se cumple, se ejecuta la sentencia1, sino, se ejecuta la sentencia2). También se pueden escalonar los if:

 if (condición)
 Sentencia1; else if
 (condición)
 Sentencia2; 
 else Sentencia3;

5.3 BUCLE FOR.

Esta sentencia nos permite repetir una o varias sentencias una cantidad de veces determinada por 3 parámetros.
 Forma general del for:
 Para una sola sentencia:

for(inicialización; condición; incremento) 
sentencia; 

Para un bloque de sentencias (recordemos que el bloque queda definido por las llaves). 

for(inicialización; condición; incremento) 
sentencias; 


6.VÍDEO DE EVIDENCIA:



6.OBSERVACIONES.

  • Se observó que, después de grabar el programa en el entrenador, los leds de los puertos no utilizados en el programa encendían un poco por ello se tuvo que añadir lo siguiente "output_B(0);" para apagar los demás leds y deshabilitarlos mediante el dip switch.
  • Se observó que, al presionar el pulsador en el entrenador este hacia como si hubiésemos pulsado dos o tres veces, por ello era necesario aumentar un delay para congelar el tiempo.               
  • Se observó que algunos pulsadores no funcionaban de manera correcta, era necesario pulsarlos dos veces para que funcionarán.


7.CONCLUSIONES.

  • Se logró realizar el programa con las condiciones que se propusieron usando los aprendido en la clase y la anterior.
  • Se logró entender el funcionamiento de los bucles de control if, while y for.
  • Para comprobar si el funcionamineto del programa es correcto, primero se simulo en proteus, para corregir las posibles fallas.