#include<16f877a.h>
#device *=16
#device adc =10
#use delay (clock=4M)
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,NODEBUG,BROWNOUT,NOCPD,NOWRT
#include <lcd420.c>
int16 contador=0;
#int_timer1
void timer1_isr(void)
{
contador=get_timer0();
   contador=contador*2*63;//*a 50hz son 1512 rpm*//
  lcd_gotoxy(3,1);
   printf(lcd_putc, "\f %6lu rpm",contador);
   set_timer0(0);
   set_timer1(3036);
}

void main()
{
int i; 
float temperatura;
float data;
float presion;

//******************************************
setup_adc_ports(AN0_AN1_AN3);//* entradas analogicas*//
setup_adc (ADC_CLOCK_INTERNAL);
setup_COUNTERS(RTCC_internal.rtcc_div_1);//* marca de division*//

//******************************************


lcd_init();


while(true)
{
//*****************rpm*********************//
 

  setup_timer_0(rtcc_ext_h_to_l | rtcc_div_2);
setup_timer_1(t1_internal | t1_div_by_8);
   
   set_timer0(0);
   set_timer1(3036);
   enable_interrupts(int_timer1);
   enable_interrupts(global);
 //*****************************************//
set_adc_channel(0);
delay_ms(1);
temperatura=(float)read_adc()/2;

//*********grados centigrados

//**********prueba voltaje**//

set_adc_channel(1);
delay_ms(1);
data=(float)read_adc()/63;//*segun el num x el que se divida es el valor
//*que aparece en la pantalla que es 1023 / la tension deseada siendo 1023
//* el maximo


//******presion de aceite******//
set_adc_channel(2);
delay_ms(1);
presion=(float)read_adc()/5,68;


//**********si la temperatura es menor que500 y mayor que35
if(temperatura<=500&&temperatura>=35)
{


lcd_gotoxy(1,2);                  //**********
printf(lcd_putc,"%f",temperatura);//**********
lcd_gotoxy(7,2);
printf(lcd_putc,"*C");
lcd_gotoxy(10,2);
printf(lcd_putc,"alta temp");
delay_ms(100);

}
//************ si la temp es menor que 35
else {



lcd_gotoxy(1,2);                  //**********
printf(lcd_putc,"%f",temperatura);//**********
lcd_gotoxy(7,2);
printf(lcd_putc,"*C");
lcd_gotoxy(10,2);
printf(lcd_putc,"normal     ");
delay_ms(100);
}





if (data<=30&&data>=15)
{


lcd_gotoxy(1,3);
printf(lcd_putc,"%f",data);
lcd_gotoxy(7,3);
printf(lcd_putc,"alto votaje");
delay_ms(100);

}

if  (data<=12)
{

lcd_gotoxy(1,3);
printf(lcd_putc,"%f",data);
lcd_gotoxy(7,3);
printf(lcd_putc,"bajo votaje");
delay_ms(100);
}

 else 
{

lcd_gotoxy(1,3);
printf(lcd_putc,"%f",data);
lcd_gotoxy(7,3);
printf(lcd_putc,"volts        ");
delay_ms(100);
//*************************************

}

if  (presion<=12)
{

lcd_gotoxy(1,4);
printf(lcd_putc,"%f",presion);
lcd_gotoxy(7,4);
printf(lcd_putc,"baja presion   ");
delay_ms(100);
}

 else 
{

lcd_gotoxy(1,4);
printf(lcd_putc,"%f",presion);
lcd_gotoxy(7,4);
printf(lcd_putc,"presion normal ");
delay_ms(100);
//*************************************

}

}
}