#include<16f877a.h>
#device *=16
#device adc =10
#use delay (clock=4M)
#fuses XT,NOWDT,NOPROTECT,NOLVP
#include <lcd420.c>
#use standard_io(B)
int contador;
long rpm;
#int_timer1

void  TIMER1_isr(void)
{
    
    
}

//**********************************************



void main()
{


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();
    setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1);
 enable_interrupts(INT_TIMER1);
   enable_interrupts(GLOBAL);
   set_timer0(0);
   set_timer1(3036);

while(true)
{

//*****************rpm*********************//
 
      rpm=get_timer0();
      rpm=rpm*60;
      lcd_gotoxy(1,1);
      printf(lcd_putc,"RPM %lu",rpm);
      contador=0;
      set_timer0(0);
     
  
 //*****************************************//
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>=90)
{


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);
}

if (data>12&&data<14,8)
{

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);
//*************************************

}

}
}