Está en la página 1de 3

FACULTAD DE INGENIERÍA

FORMATO
PRÁCTICAS DE LABORATORIO

UNIVERSIDAD AUTÓNOMA DE CAMPECHE

NOMBRE DEL PROFESOR: HENRY FABIAN GONGORA


NOMBRE DEL ALUMNO: ERIKA MARIA DE LA VEGA ARAIZA
NOMBRE DE LA PRÁCTICA: HORNO
PRÁCTICA NÚM. [1]

LABORATORIO: SIN LABORATORIO


MATERIA: SISTEMAS EMBEBIDOS
UNIDAD: 1
TIEMPO: 2 HRS

OBJETIVO:
• Desarrollar el programa para controlar el horno

EQUIPO DE LABORATORIO:
• Computadora con el software instalado PROTEUS Y PIC C

DESARROLLO DE LA PRÁCTICA:
Se utilizo el lenguaje de programación C ya que para el desarrollo del proyecto se utilizó un
PIC16F84, el programa tiene como objetivo controlar un horno, se utilizan los cuatros estados:
• Para el estado DoorOpen se tendrá que el horno se encuentra apagado y la puerta abierta
• Posteriormente, en el estado de Heating se cierra la puerta y se ajusta el tiempo del
calentamiento y se procede a iniciar el temporizador
• Para que se pueda tener el estado Paused se tiene que abrir la puerta del horno, pausar
el temporizador y cerrar a puerta, se procede a continuar con la cuenta del temporizador

El código quedo de la siguiente manera:


#include <16F84A.h>

#FUSES NOWDT //No Watch Dog Timer


#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading

//Es el tiempo que se le asigna a la ejecucion del programa, son los ciclos del reloj
#use delay(clock=4000000)

int16 contador=0;
int segundos = 0;
int a = 0; //Declaramos la variable de control, que es un activador
FACULTAD DE INGENIERÍA
FORMATO
PRÁCTICAS DE LABORATORIO

UNIVERSIDAD AUTÓNOMA DE CAMPECHE


#int_timer0
void prueba() {//Esta parte es para comprobar si la puerta esta cerrada y el boton esta oprimido
if(contador == 2000)
{
if(input(43) !=0 && a == 1) {
output_bit(53, 1);
output_bit(55, 1);
segundos += 1;
}
else {
output_bit(53, 0);
output_bit(55,0);
}
contador = 0;
}
contador++;
SET_TIMER0(131);
}

void main(){
//Define que que formula se usara para el tiempo
setup_timer_0(RTCC_INTERNAL | RTCC_DIV_4);
SET_TIMER0(131); //Es el resultado de la funcion
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);

while(true) {
//Ejecuta el programa infinitamente mientras que la puerta este cerrada
//y el boton este oprimido
if(input(43) !=0 && input(41) != 0) {
a = 1;
}
if(segundos == 5 && a == 1) {
a = 0;
segundos = 0;
}
}

}
FACULTAD DE INGENIERÍA
FORMATO
PRÁCTICAS DE LABORATORIO

UNIVERSIDAD AUTÓNOMA DE CAMPECHE


El resultado fue el siguiente:

También podría gustarte