laboratorio 2
programación básica con bucles de control
materiales y equipos
marco teórico
Se denomina microcontrolador a un dispositivo programable capáz de realizar diferentes actividades que requieran procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.
Generalmente se cree que un microcontrolador es igual a un microprocesador. Pero tiene muchas diferencias, ya que funcionan de distinta forma.
MICROPROCESADOR
Los microprocesadores tienen una arquitectura destinada al procesamiento de datos.
Para un microprocesador la CPU, la RAM, la ROM y perifericos se encuentran separados.
Los programas que se corren en un microprocesador siempre tienen un fín.
MICROCONTROLADOR
Un microcontrolador tiene un arquitectura destinada a procesos de control.
En un solo chip llevan CPU, la RAM, la ROM, periféricos, timers, conversores AD y DA.
Los programas que se realizan en un microcontrolador nunca tienen fin, es decir solo se termina el programa cuando se corta la energía
¿que es un bucle ?
Un bucle o ciclo, en programación, es una secuencia que ejecuta repetidas veces un trozo de código, hasta que la condición asignada a dicho bucle deja de cumplirse. Los tres bucles más utilizados en programación son el bucle while, el bucle for y el bucle do-while.
bucle while
El bucle while o bucle mientras es un ciclo repetitivo basado en los resultados de una expresión lógica; se encuentra en la mayoría de los lenguajes de programación estructurados. El propósito es repetir un bloque de código mientras una condición se mantenga verdadera
competencia especificas 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.
materiales y equipos
- CCS compiler instalado.
- entrenador de pics .
- pantalla LCD.
- PIC 16F877A.
- PC con sotware de simulacion .
marco teórico
Se denomina microcontrolador a un dispositivo programable capáz de realizar diferentes actividades que requieran procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.
Generalmente se cree que un microcontrolador es igual a un microprocesador. Pero tiene muchas diferencias, ya que funcionan de distinta forma.
MICROPROCESADOR
Los microprocesadores tienen una arquitectura destinada al procesamiento de datos.
Para un microprocesador la CPU, la RAM, la ROM y perifericos se encuentran separados.
Los programas que se corren en un microprocesador siempre tienen un fín.
MICROCONTROLADOR
Un microcontrolador tiene un arquitectura destinada a procesos de control.
En un solo chip llevan CPU, la RAM, la ROM, periféricos, timers, conversores AD y DA.
Los programas que se realizan en un microcontrolador nunca tienen fin, es decir solo se termina el programa cuando se corta la energía
¿que es un bucle ?
Un bucle o ciclo, en programación, es una secuencia que ejecuta repetidas veces un trozo de código, hasta que la condición asignada a dicho bucle deja de cumplirse. Los tres bucles más utilizados en programación son el bucle while, el bucle for y el bucle do-while.
bucle while
El bucle while o bucle mientras es un ciclo repetitivo basado en los resultados de una expresión lógica; se encuentra en la mayoría de los lenguajes de programación estructurados. El propósito es repetir un bloque de código mientras una condición se mantenga verdadera
bucle if -else.
Se trata de una estructura de control que permite redirigir un curso de acción según la evaluación de una condición simple, sea falsa o verdadera.
Si la condición es verdadera, se ejecuta el bloque de sentencias 1; de lo contrario, se ejecuta el bloque de sentencias 2.
IF (Condición) THEN
(Bloque de sentencias 1)
ELSE
(Bloque de sentencias 2)
END IF
bucle 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.
Al iniciar el programa todos los leds deben permanecer apagados.
Al presionar A5, debe encender C0, al volver a presionar, debe encender 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.
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.
evidencia de la tarea en el laboratorio
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:
Al iniciar el programa todos los leds deben permanecer apagados.
Al presionar A5, debe encender C0, al volver a presionar, debe encender 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.
el código de la programación
#include <16f877a.h> // Incluimos archivo con PIC a utilizar
#use delay (clock=20M) // Indicamos al compilador que trabajaremos a 20Mhz
#fuses HS, NOPROTECT, NOWDT // Configuración básica de los fusibles
int salida=0; // Declaramos variable "salida" como entera y valor UNO
int habilitador=1;
void main () // FUNCION PRINCIPAL del programa, indispensable
{
output_c(0b00000000); // Sacamos por el puerto C el valor de salida (00000000)
// Este comando se realiza por única vez
while (true) // Bucle de REPETICION infinita por valer "true"
{
IF (habilitador == 1)
{
IF (!input(PIN_A5) && (salida ==0))
{
salida=1;
output_c(salida);
delay_ms(500); // "Congela el tiempo" durante 500 ms
}
ELSE IF (!input(PIN_A5))
{
salida = salida << 1;
output_c(salida);
delay_ms(500);
}
IF (!input(PIN_D0)) // SI detectamos 0 voltios en PIN A5 (presionando pulsador)
{
salida = salida >> 1; // Recorremos el contenido de "salida" una posición a la derecha
output_c(salida); //
delay_ms(500); // "Congela el tiempo" durante 500 ms para evitar falsas pulsaciones
}
}
IF (!input(PIN_D1))
{
habilitador = !habilitador;
delay_ms(500); // "Congela el tiempo" durante 500 ms para evitar falsas pulsaciones
}
}
}
el codigo en el programa ccs compiler
simulacion en isis preteus
funcionamiento
observaciones.
- observamos que para que el led suba o baja nosotros teníamos que poner el siguiente comando ">> o <<" respectivamente .
- se observo que nosotros al poner " ! " en la programación significa que el comando esta detectando cero voltios.
- al empezar la programación siempre tenemos que poner # include que significa el archivo ha utilizar #use delay nos indica en que frecuencia va ha trabajar # fuses HS ,NOPROTEC,NOWDT nos indican los fusibles.
conclusiones.
- se logro el manejo de los diferentes puertos de forma grupal e independiente para el respectivo manejo de las luces así poder visualizar la tarea planteada.
- logramos aprender y comprender el manejo de comando IF ,VOID,WHILE para la respectiva programación .
- se comcluyo que para sabes programar en microcontrladores debemos aprender a utilizar los diferentes comandos que tiene el lenguaje C.
foto
bibliografia y pagina web recomendada
- Marin, Francisco (2007) Diseño basado en microcontroladores . Malaga : Universidad de Malaga(004.16/M26D)
- Pereira; Fabio (2007) Microcontroladores PIC.Sao Paulo:s.n.(005.13/P43)









El video no está disponible.
ResponderEliminar