You are on page 1of 16

Aporte No.

2
Nombre: Dayra Lucia Delgado
Curso: Microprocesadores y Microcontroladores

Ejercicio No. 1

Debe sensar la temperatura ambiente y si est menor o igual de 30 grados el led verde
se encender y dar un solo sonido cada 2 segundos , si la temperatura esta entre los 30
y 38 grados se encender un led amarillo , y si supera los 39 grados hasta los 50 grados
El led rojo se prendera y debe dar una alarma constante y prenderse el ventilador hasta
que baje la temperatura menor o igual a 20 grados. En el display se debe visualizar el
valor de la temperatura y la activacin de motor como MOTOR ON o MOTOR OFF.

Paso 1: Creacin del cdigo de programacin C (CCS C Compiler)

#include<16f877A.h>
#device adc=100
# device *=16
#use delay (clock=4M)
#include <lcd.c>
#fuses xt, hs, nowdt,noprotect,nolvp

// configuracin de puertos
#define led_bajo pin_a1 // led verde
#define led_medio pin_a2 // led amarillo
#define led_alto pin_a3 // led rojo
#define sonido pin_b4 // speaker sonido
#define motor pin_b5 // motor

// definicin de variables
float temperatura;
void main(){

//******************
setup_adc_ports (RA0_ANALOG);//entrada lm35
setup_adc (ADC_CLOCK_INTERNAL); //***convertidor analgico digital
setup_COUNTERS (RTCC_internal.rtcc_div_1) ; //marca divisin para convertidor
set_adc_channel (0);

//*******************************
Lcd_init();//******inicio lcd
lcd_gotoxy(1,1);
printf(lcd_putc,"SENSOR TEMPERATURA");
delay_ms(200);

while(true){
temperatura= (float)read_adc()/2-1;// lectura convertidor anlogo
lcd_gotoxy(1,2);
printf(lcd_putc,"%f",temperatura);
delay_ms(100);

//**************Logica
if(temperatura<=30)
{
output_high(led_bajo); //led verde ON
output_low(led_medio); //led amarillo OFF
output_low(led_alto); //led rojo OFF
output_low(motor);
output_low(sonido);
lcd_gotoxy(8,2);
printf(lcd_putc, "MOTOR OFF");
}

if (temperatura>=30.1&&temperatura<=38){
output_low(led_bajo); //led verde OFF
output_high(led_medio); //led amarillo ON
output_low(led_alto); //led rojo OFF
output_high(motor);
delay_ms(100);
output_low(sonido);
output_high(sonido);
delay_ms(20);
output_low(sonido);
lcd_gotoxy(8,2);
printf(lcd_putc, "MOTOR ON ");
}

if (temperatura>=38.1&&temperatura<=50){
output_low(led_bajo); //led verde OFF
output_low(led_medio); //led amarillo OFF
output_high(led_alto); //led rojo ON
output_high(motor);
output_high(sonido);
lcd_gotoxy(8,2);
printf(lcd_putc, "MOTOR ON ");
}
}
}
Una vez realizado la lgica del cdigo, se pasa al siguiente paso que es abrir el compilador
que reconoce el cdigo (CCS C compiler).

Se abre un nuevo proyecto con un clik en File, luego en New Proyect Wizard, se elige la
familia del el Pic a utilizar (PIC 16f877A) y se escribe el cdigo, se guarda el archivo con
el nombre de SesorTemp.c.
Luego en el men superior le damos click en Compiler y luego Buid,
Si el cdigo no tiene errores aparecer el siguiente mensaje en la parte inferior

De esta manera internamente el programa crea los archivos compilados incluido el archivo
.hex que posteriormente ser llamado por Proteus.
Paso 2: Montaje de piezas en simulador (PROTEUS)

Abrir el Proteus profesional en un nuevo proyecto por defecto

Se de la clik en el men File y luego New, en esta parte se lo gua a la ruta de archivos
previamente creada.

A continuacin se crea un mapa de trabajo en blanco para crear el diagramas con los
componentes, para ello se le da las opciones por defecto.
La siguiente ventana se le da clic por defecto.

Posteriormente si las opciones son correctas aparece la siguiente ventana:


Estas opciones son necesarias para dar inicio al proyecto.
Posteriormente se selecciona las dos primeras opciones:
A continuacin debe aparecer una ventana como esta para dar inicio a la creacin del
diagrama en el microprocesador elegido.
El Proteus permite crear el diagrama de trabajo paulatinamente:
Se van integrando todos los componentes que el programa requiere:
Cuando se haya graficado todos los componentes y conexiones se carga el archivo .hex
generado en CCS C compiler en este caso denominado previamenre SensorTemp..hex para
realizar las pruebas, para ello le damos doble click en el PIC y se abrir a siguiente venta,
aqu se debe especificar la ruta del archivo .hex.

Una vez cargado el cdigo se lo pone a funcionar con el botn play de la ventana del
proteus en el men inferior izquierdo
El valor de la temperatura aparece de manera permanente en el display, se puede aumentar
o disminuir el valor de la temperatura para identificar el proceso del PIC. Es decir, cuando
la temperatura tiene un valor menor o igual a 30 (en este caso 26.00), el led rojo y amarillo
se apagan, el led verde se enciende, mientras que los dems componentes se encuentran
apagados, el motor apagado, el sonido apagado, y el mensaje del display muestra Motor
OFF de la siguiente manera:
Cuando la temperatura tiene un valor mayor a 30 y menor o igual a 38 (en este caso 37.00),
el led rojo y verde se apagan, se enciende el led amarillo, empieza a girar el motor, el
sonido tambin se enciende con intermitencia de 2segundos, y el display muestra el
mensaje del motor en ON, de la siguiente manera:
Ahora, cuando la temperatura tiene un valor mayor a 38 y menor o igual a 50 (en este caso
46.00), el led verde y amarilo se apagan, se enciende el led rojo, el motor continua girando,
el sonido no tiene intermitencia y es continuo y el display muestra el mensaje del motor
ON, de la siguiente manera:

You might also like