Microprocesadores y Microcontroladores
Microprocesadores y Microcontroladores
Microprocesadores y Microcontroladores
Paso 4
94 538 465
Tutor
Grupo:
309696_6
void main(){
trisb=0B11100000;
trisa=0X00;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
green=0;
yellow=0;
red=0;
motor = 1; ///////motor inicia apagado
enable = 1;
while(true){
set_adc_channel(0);
delay_ms(10);
lect=read_adc();
Tp = 5000.0 * lect/1023.0; /// Se mide temperatura en mV
Temp= Tp/10.0; // se pasa valor de temp a unidad
lcd_gotoxy(1,1);
printf(lcd_putc,"Temp Amb: %.2F",Temp);
/*estado bajo de la temp si la temperatura es menor o igual a 20 grados
el led verde se enciende y parpadea cada 2 segundos
y el motor esta apagado
*/
if (temp <= 20.0){
lcd_gotoxy(1,2);
printf(lcd_putc," ");
lcd_gotoxy(1,2);
printf(lcd_putc,"MOTOR : OFF");
delay_ms(2);
red=0;
yellow=0;
green=1;
delay_ms(2000);
green=0;
delay_ms(2000);
}
/*si la temperatura es mayor a 20 y menor o igual a 28 el led amarillo
se enciende*/
if ((Temp > 20.0) && (Temp <= 28.0 )){
delay_ms(10);
green=0;
red=0;
yellow=1;
}
/*si la temperatura supera los 28 grados centigrados se enciende el motor
y el led rojo parpadea instantaneamente
*/
if ((Temp > 28.0) && (Temp <= 40.0)){
lcd_gotoxy(1,2);
printf(lcd_putc," ");
lcd_gotoxy(1,2);
printf(lcd_putc,"MOTOR : ON");
delay_ms(2);
green=0;
yellow=0;
red=1;
delay_ms(250);
red=0;
delay_ms(250);
}
/*si la temperatura es superior a 28.0 el motor se enciende y se muestra
en pantalla, cuando la temperatura se estabiliza a 20 grados el ventilador
se apaga y se muestra en pantalla
*/
if (Temp >= 28.0){
delay_ms(2);
lcd_gotoxy(1,2);
printf(lcd_putc," ");
lcd_gotoxy(1,2);
printf(lcd_putc,"MOTOR : ON");
motor=0;
enable=1;
} else if(Temp <= 20){
delay_ms(2);
motor=1;
enable=1;
lcd_gotoxy(1,2);
printf(lcd_putc," ");
lcd_gotoxy(1,2);
printf(lcd_putc,"MOTOR : OFF");
}
}
}
Simulación en Proteus
detector de temp.rar
DISPLAY INFORMATIVO
#include <16F877A.H>
#FUSES XT,NOWDT
#USE delay(clock=4000000)
#include <lcd.c>
#use STANDARD_IO(B)
int16 var=0,save=0;
void main(){
lcd_init();
var=0;
while (true){
if (input(PIN_B0)==1){
var=1;
delay_ms(150);
lcd_putc('\f');
}
if (input(PIN_B1)==1){
var=2;
delay_ms(150);
lcd_putc('\f');
}
if (input(PIN_B2)==1){
var=3;
delay_ms(150);
lcd_putc('\f');
}
if (input(PIN_B3)==1){
var=4;
delay_ms(150);
lcd_putc('\f');
}
if (input(PIN_B4)==1){
var=5;
delay_ms(150);
lcd_putc('\f');
}
save=var;
switch(save){
case 0:
lcd_gotoxy(1,1);
printf(lcd_putc,"MicroProcesadorS");
lcd_gotoxy(2,2);
printf(lcd_putc,"Grupo 309696_6");
break;
case 1:
lcd_gotoxy(5,1);
printf(lcd_putc,"DIANA TORO");
lcd_gotoxy(2,2);
printf(lcd_putc,"Grupo 309696_6");
break;
case 2:
lcd_gotoxy(1,1);
printf(lcd_putc," ROGER RODRIGUEZ");
lcd_gotoxy(2,2);
printf(lcd_putc,"Grupo 309696_6");
break;
case 3:
lcd_gotoxy(1,1);
printf(lcd_putc,"TITO J RODRIGUEZ");
lcd_gotoxy(2,2);
printf(lcd_putc,"Grupo 309696_6");
break;
case 4:
lcd_gotoxy(1,1);
printf(lcd_putc,"LUIS FERNE ACOSTA");
lcd_gotoxy(2,2);
printf(lcd_putc,"Grupo 309696_6");
break;
case 5:
lcd_gotoxy(1,1);
printf(lcd_putc,"JEISON HERNANDEZ");
lcd_gotoxy(2,2);
printf(lcd_putc,"Grupo 309696_6");
break;
}
}
}
name per button.rar
CONCLUSIONES