MICROCONTROLADORES
Programación básica con bucles de control.
I. 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.
II. COMPETENCIA
ESPECÍFICA 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.
- CONTENIDOS A
TRATAR
●
Control
de puertos como entradas y/o salidas
●
Generación
de salida pulsante
●
Bucles
de control
IV. MARCO TEORICO : BUCLES DE CONTROL
- BUCLES DE CONTROL
- BUCLES DE WHILE
El bucle while te permite seguir ejecutando un bloque de código mientras la condición a evaluar sea verdadera. Por lo tanto, aunque se puede utilizar con un contador (como un for), se suele utilizar cuando no sabes cuántas veces tienes que repetir el bucle.
While (condicion) {
// Instrucciones a ejecutar una y otra
//vez mientras la condición sea cierta
}
- BUCLES DE IF
El bucle if realiza una acción si se satisface una condición particular.
El bucle if sigue el siguiente formato.
{
List of stitcher rules to execute if the condition is TRUE
}
La lista de reglas del agrupador se ejecuta si se satisface la prueba condicional. También se puede especificar una lista de reglas del agrupador que se ejecutarán si no se satisface la condición, como se muestra a continuación.
- BUCLES DE IF-ELSE
Como su nombre lo sugiere, es una combinación de if y else. Del mismo modo que else, extiende una sentencia if para ejecutar una sentencia diferente en caso que la expresión if original se evalúe como FALSE. Sin embargo, a diferencia de else, esa expresión alternativa sólo se ejecutará si la expresión condicional del elseif se evalúa como TRUE. Por ejemplo, el siguiente código debe mostrar a es mayor que b, a es igual que b o a es menor que b.
- BUCLES DE FOR
El bucle for es una estructura de control en programación en la que se puede indicar de antemano el número mínimo de iteraciones.Está disponible en casi todos los lenguajes de programación imperativos.
for (valor inicial; condicion; ejecutar en cada blucle) {// Instrucciones a ejecutar mientras la condición sea cierta
}
Ejemplo:
for ($cantidad = 1; $cantidad <10; $i++) {
echo("$cantidad");
}
TAREA EVALUADAAPACIDAD
1. Se tiene un sistema con 3 pulsadores (A5, D0, D1) de entrada y 8 leds de salida (Puerto C): Programar para que se comporte de la siguiente manera:
for ($cantidad = 1; $cantidad <10; $i++) {
echo("$cantidad");
}
TAREA EVALUADAAPACIDAD
1. Se tiene un sistema con 3 pulsadores (A5, D0, D1) de entrada y 8 leds de salida (Puerto C): Programar para que se comporte de la siguiente manera:
a. Al iniciar el programa todos los leds deben permanecer apagados.
b. Al presionar A5, debe encender C0, al volver a presionar, debe encender C1 y así sucesivamente.
c. Al presionar D0, los deben encender sucesivamente pero en sentido inverso.
d. La entrada D1 debe funcionar como un habilitador, es decir, por defecto el sistema está habilitado y funcionará como lo antes mencionado. Si presiono D1, el sistema quedará “congelado” y nada funcionará. Si vuelvo a presionar D1, el sistema nuevamente queda habilitado.
2. Describa el funcionamiento del programa previamente diseñado, demuestre funcionamiento mediante simulación y en tarjeta entrenadora. Grabe un video para evidencia.
VIDEOS
ARTURO MAMANI BERNAL
link explicativo sobre lo resuelto en clases y tarea dejada
link explicativo sobre lo resuelto en clases y tarea dejada
https://youtu.be/QJIx1FPwOng
MAMANI DE LA CRUZ GUSTAVO
MAMANI DE LA CRUZ GUSTAVO
OBSERVACIONES:
-Hay que
procurar realizar el programa en PIC C Compiler de forma ordenada y con
comentarios si es posible, para poder entender el programa en caso de verlo más
adelante.
-En caso de
que el programa no salga como deseamos es recomendable depurarlo paso a paso el
simulador de Proteus para así corregor los posibles errores que pudiera
presentar.
-Es
necesario copiar el archivo "16F877A.h" en la carpeta donde se creó
el programa, para que sea reconocido mediante la instrucción "#include
<16f877a.h>" que se utilizó en el encabezado del programa,.
-Se observó
que al momento de realizar la simulación en Proteus y cargar el programa en el
PIC, se observó que tanto el archivo HEX y COF lo ejecutan de manera correcta,
pero con el archivo HEX no es posible depurarlo paso a paso.
-Al momento
de programar en PIC C Compiler, debemos tomar en cuenta que para negar una
variable hay que usar el comando "!" y no "TOGGLE", ya que
este último se usa para puertos de salida.
-Utilizamos
el comando "<<" y ">>" para recorrer el
contenido de una variable una posición hacia la izquierda y derecha
respectivamente.
CONCLUSIONES
-realizó
el manejo de puertos de forma grupal e independiente para el manejo de luces,
realizando el programa dado en el laboratorio correspondiente.
-Se
reconoció la función que cumplen las instrucciones en las directivas o
cabeceras del programa utilizado: "#include <16f877a.h>",
"#use delay (clock=20M)" y "#fuses HS, NOPROTECT, NOWDT".
-Se
utilizaron funciones condicionales como "IF", "ELSE IF"
para la realización de las condiciones establecidas al presionar cada pulsador.
-Se compiló
el programa en PIC C Compiler a partir del cual se generaron los archivos HEX y
COF para realizar la simulación en Proteus.
-Se logró
transferir el archivo generado HEX al entrenador utilizando el programa PICKIT2
y se verificó el correcto funcionamiento del mismo.
-Se modificó
el programa para encender un LED y desplazarlo hacia arriba y abajo mediando
dos pulsadores y un tercer pulsador para habilitar dicho desplazamiento.
Revisado
ResponderEliminar