You are on page 1of 1

#include <16f877a.h> #device adc=8 //NECESARIO #FUSES HS, NOWDT, NOPROTECT //NECESARIO #use delay(clock=20000000) //NECESARIO #include "LCD.

C" #include "MATH.H" #byte portb=0x06 #byte portd=0x08 void main(VOID) { setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); setup_vref(FALSE); set_tris_d(0x00); set_tris_b(0x00); set_tris_a(0xFF); set_adc_channel(0); delay_us(10); unsigned int analogo, tempin, tempfl; signed int8 prev; double temp, tempa; lcd_init(); tempa=100; while (TRUE) { analogo = read_adc(); portb = -analogo+1; if(analogo<180){ prev=analogo-51; temp=abs(prev/2.907); } else{ prev=analogo-180; temp=prev/2.907; temp=temp+44.5; } temp =floor(temp*10+.5)/10; if(temp!=tempa){ tempin=floor(temp); tempfl=10*(temp-tempin); lcd_gotoxy(1,1); printf(lcd_putc,"Term%cmetro J-M-R", 0xEF); if(analogo<51){ printf(lcd_putc,"\nTemp: -%3u.%u %cC",tempin,tempfl,0xDF); } else{ printf(lcd_putc,"\nTemp: %3u.%u %cC",tempin,tempfl,0xDF); } tempa=temp; } delay_ms(500); } }

You might also like