Lab. 02
LABORATORIO 02
Electrónica y Automatización Industrial 4C5B
Integrantes:
-Yerdrick Jhosep Tunco Cuenta
-José Valdivia
- ESTRUCTURAS CONDICIONALES
* Operador Switch
III. DESARROLLO:
Programas a utilizar: ISIS PROTEUS, PIC C COMPILER y PICKT2.
-Se muestra la programación de aprendizaje que otorgo el PROFESOR, "Funciona correctamente y fue de gran ayuda para resolver la Tarea evaluada ".
Electrónica y Automatización Industrial 4C5B
Integrantes:
-Yerdrick Jhosep Tunco Cuenta
-José Valdivia
PROGRAMACIÓN BÁSICA CON BUCLES DE CONTROL
I. OBJETIVOS:
·
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. MARCO TEÓRICO:
- BUCLES DE CONTROL:
A menudo es necesario repetir una cierta operación un par de veces en el programa. Un conjunto de comandos que se repiten es denominado un bucle de programa. Cuántas veces se ejecutará, es decir cuánto tiempo el programa se quedará en el bucle, depende de las condiciones de salir del bucle.
* Bucle While:
- BUCLES DE CONTROL:
A menudo es necesario repetir una cierta operación un par de veces en el programa. Un conjunto de comandos que se repiten es denominado un bucle de programa. Cuántas veces se ejecutará, es decir cuánto tiempo el programa se quedará en el bucle, depende de las condiciones de salir del bucle.
* Bucle While:
El
bucle while se parece a lo siguiente:
while(expresión){
comandos
...
}
Los
comandos se ejecutan repetidamente (el programa se queda en el bucle) hasta que
la expresión llegue a ser falsa. Si la expresión es falsa en la entrada del
bucle, entonces el bucle no se ejecutará y el programa continuará desde el fin
del bucle while. Un tipo especial del bucle de programa es un bucle infinito.
Se forma si la condición sigue sin cambios dentro del bucle. La ejecución es
simple en este caso ya que el resultado entre llaves es siempre verdadero
(1=verdadero), lo que significa que el programa se queda en el mismo bucle:
while(1){ // En vez de
"while(1)", se puede escribir "while(true)"
... // Expresiones encerradas entre llaves
se ejecutarán
... // repetidamente (bucle infinito) }
* Bucle For
El bucle for se parece a lo siguiente:
for(expresión_inicial; expresión_de_condición; cambiar_expresión) {
operaciones
...
}
La ejecución de esta secuencia de programa es similar al bucle while, salvo que en este caso el proceso de especificar el valor inicial (inicialización) se realice en la declaración. La expresión_ inicial especifica la variable inicial del bucle, que más tarde se compara con la expresión_ de_condición antes de entrar al bucle. Las operaciones dentro del bucle se ejecutan repetidamente y después de cada iteración el valor de la expresión_inicial se incrementa de acuerdo con la regla cambiar_expresión. La iteración continúa hasta que la expresión_de_condición llegue a ser falsa.
for(k=0; k<5; k++) // La variable k se incrementa 5 veces (de 1 a 4) y
operación // cada vez se repite la expresión operación
...
La operación se ejecutará cinco veces. Luego, al comprobar se valida que la expresión k<5 sea falsa (después de 5 iteraciones k=5) y el programa saldrá del bucle for.
- ESTRUCTURAS CONDICIONALES
Las condiciones son ingredientes comunes de un
programa. Las condiciones permiten ejecutar una o varias sentencias dependiendo
de validez de una expresión. Los operandos condicionales if-else y switch se
utilizan en las operaciones condicionales. Una sentencia condicional puede ser
seguida por una sola sentencia o por un bloque de sentencias a ser ejecutadas.
* OPERADOR CONDICIONAL if-else:
* OPERADOR CONDICIONAL if-else:
El
operador if se puede utilizar solo o asociado al
operador else (if-else). Ejemplo del operador if:
if(expresión) operación;
Si
el resultado de la expresión encerrada entre paréntesis es verdadero (distinto
de 0) la operación se realiza y el programa continúa con la ejecución. Si el
resultado de la expresión es falso (0), la operación no se realiza
y el programa continúa inmediatamente con la ejecución. Como hemos mencionado,
la otra forma combina tanto el operador if como el else:
if(expresión) operación1 else
operación2;
Si
el resultado de la expresión es verdadero (distinto de 0), se
realiza operación1, de lo contrario se realiza la operación2. Después de
realizar una de las operaciones, el programa continúa con la ejecución. La
sentencia if-else se parece a lo siguiente:
if(expresión)
operación1
else
operación2
Si
operación1 u operación2 está compuesta, escriba una lista de sentencias encerradas
entre llaves. Por ejemplo:
if(expresión) {
... //
... // operación1
...} //
else
operación2
El
operador if-else se puede sustituir por el operador
condicional '?:':
(expresión1)? expresión2 : expresión3
Si
el valor de la expresión1 es distinto de 0 (verdadero), el resultado de
la expresión entera será equivalente al resultado obtenido de laexpresión2. De lo contrario,
si la expresión1 es 0 (falso), el resultado de la expresión
entera será equivalente al resultado obtenido de laexpresión3. Por ejemplo:
maximum = (a>b)? a : b // A la
variable maximum se le asigna el
// valor de la variable
mayor(a o b)
* Operador Switch
A
diferencia de la sentencia if-else que selecciona entre dos opciones en el
programa, el operador switch permite elegir entre varias opciones. La
sintaxis de la sentencia switch es:
switch (selector) // Selector es de
tipo char o int
{
case constante1:
operación1 // El grupo de operadores que se ejecutan si
... // el selector y la
constante1 son equivalentes
break;
case constante2:
operación2 // El grupo de operadores se ejecuta si
... // el selector y la
constante2 son equivalentes
break;
...
default:
operación_esperada // El grupo de operadores que se ejecuta si
... // ninguna
constante equivale al selector
break;
}
III. DESARROLLO:
Programas a utilizar: ISIS PROTEUS, PIC C COMPILER y PICKT2.
-Se muestra la programación de aprendizaje que otorgo el PROFESOR, "Funciona correctamente y fue de gran ayuda para resolver la Tarea evaluada ".
a) PRIMERA TAREA: Se realiza la programación de la tarea a ser evaluada, con las siguientes condiciones:
Se tiene un sistema con 3 pulsadores (A5, D0, D1) de entrada y 8 leds de salida (Puerto C):
-Al iniciar el programa todos los leds deben permanecer apagados.
-Al presionar A5, debe encenderse C0, al volver a presionar, debe encenderse C1 y así sucesivamente.
-Al presionar D0, los deben encender sucesivamente pero en sentido inverso.
-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.
- Se muestra la programación para la solución de las condiciones dadas.
-En la primera condición, nos dice que si nuestra entrada "A5" detecta un pulso y la salida = 0, entonces convierte nuestra variable salida a "1" y lo visualiza por el puerto C con un recorrido de la salida una posición a la izquierda
-En la segunda condición, nos dice que si nuestra entrada D0 detecta 0 voltios y si nuestro habilitador es = 1 entonces dará un barrido de leds de derecha a izquierda , por el puerto "c" tomara valores de "10000000" - "01000000" y así sucesivamente , todos con un tiempo de 500 mS.
- Se creo una nueva variable que se le denomino "habilitador =1 " y se le añade a cada condición para que cuando nuestro habilitador tome el valor de 1 entonces nuestras condiciones funcionaran, pero cuando nuestro habilitador sea = "0" entonces no funcionara las condiciones dadas. Esta acción lo realiza el PIN D1. (invierte el valor del habilitador).
- Se muestra el resultado del PIN(D1), que desabilita/congela todo las condiciones y ninguna funciona.
VI. OBSERVACIONES:
-La condición IF, sirve para realizar una acción , "si se cumple ........ entonces funcionara dependiendo a la programación que se le otorgo".
-La condición For, sirve para repetir un grupo de sentencias un numero determinado de veces. "implementa a mi bucle".
- Se observó de que un valor(1/0) , puede ser reemplazado por una variable y así poder trabajar en el sistema de control.
- Se observó de que se puede visualizar todos los leds del Puerto (C) y sacarlo con el valor de salida (00000000), para que funcione en nuestro sistema de control.
V. CONCLUSIONES:
-Se concluye de que un bucle de control , es una secuencia que se controla mediante programación.
-Programamos y configuramos la tarjeta entrenadora para realizar la emulación del programa que compilamos en el pickit.
-Se concluye que una secuencia es la estructura de control que tiene que seguir la programación aplicada , hace referencia al orden de ejecución de instrucciones, es decir , una tras otra.
-Se concluye conocer el funcionamiento de un bucle de control , que es de seguir una secuencia de programación hasta que este se cumpla.
VI. VÍDEOS DEMOSTRATIVOS:
-Se adjunta el link del video.
- https://www.youtube.com/watch?v=24aPFXV0lm0&feature=youtu.be
VII. FOTO DE LOS INTEGRANTES que estuvieron en el laboratorio 02.
Se tiene un sistema con 3 pulsadores (A5, D0, D1) de entrada y 8 leds de salida (Puerto C):
-Al iniciar el programa todos los leds deben permanecer apagados.
-Al presionar A5, debe encenderse C0, al volver a presionar, debe encenderse C1 y así sucesivamente.
-Al presionar D0, los deben encender sucesivamente pero en sentido inverso.
-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.
- Se muestra la programación para la solución de las condiciones dadas.
-En la primera condición, nos dice que si nuestra entrada "A5" detecta un pulso y la salida = 0, entonces convierte nuestra variable salida a "1" y lo visualiza por el puerto C con un recorrido de la salida una posición a la izquierda
-En la segunda condición, nos dice que si nuestra entrada D0 detecta 0 voltios y si nuestro habilitador es = 1 entonces dará un barrido de leds de derecha a izquierda , por el puerto "c" tomara valores de "10000000" - "01000000" y así sucesivamente , todos con un tiempo de 500 mS.
- Se creo una nueva variable que se le denomino "habilitador =1 " y se le añade a cada condición para que cuando nuestro habilitador tome el valor de 1 entonces nuestras condiciones funcionaran, pero cuando nuestro habilitador sea = "0" entonces no funcionara las condiciones dadas. Esta acción lo realiza el PIN D1. (invierte el valor del habilitador).
SE ADJUNTA EL LINK DE LA PROGRAMACIÓN:
- Se muestra el resultado del PIN(A5), lo cual se trata de un recorrido del led, pero con cada pulso que se le otorga a este.
VI. OBSERVACIONES:
-La condición IF, sirve para realizar una acción , "si se cumple ........ entonces funcionara dependiendo a la programación que se le otorgo".
-La condición For, sirve para repetir un grupo de sentencias un numero determinado de veces. "implementa a mi bucle".
- Se observó de que un valor(1/0) , puede ser reemplazado por una variable y así poder trabajar en el sistema de control.
- Se observó de que se puede visualizar todos los leds del Puerto (C) y sacarlo con el valor de salida (00000000), para que funcione en nuestro sistema de control.
V. CONCLUSIONES:
-Se concluye de que un bucle de control , es una secuencia que se controla mediante programación.
-Programamos y configuramos la tarjeta entrenadora para realizar la emulación del programa que compilamos en el pickit.
-Se concluye que una secuencia es la estructura de control que tiene que seguir la programación aplicada , hace referencia al orden de ejecución de instrucciones, es decir , una tras otra.
-Se concluye conocer el funcionamiento de un bucle de control , que es de seguir una secuencia de programación hasta que este se cumpla.
VI. VÍDEOS DEMOSTRATIVOS:
-Se adjunta el link del video.
- https://www.youtube.com/watch?v=24aPFXV0lm0&feature=youtu.be
VII. FOTO DE LOS INTEGRANTES que estuvieron en el laboratorio 02.
Fin......





Revisado. OK
ResponderEliminar