JecarDatha Electronics MICROCONTROLADOR 16F877A | Page 53

PROGRAMACION

#include <16f877a.h>

#device adc=10

#fuses hs,nowdt,noprotect

#use delay (clock=4 Mhz)

#include <lcd.c>//Libreria para LCD

#use standard_io(D)

float x;

float y;

float z;

void main()

{

lcd_init();

setup_adc(adc_clock_internal);

setup_adc_ports(RA0_ANALOG);

lcd_gotoxy(1,1);

printf(lcd_putc," TERMOMETRO ");

lcd_gotoxy(1,2);

printf(lcd_putc,"DIGITAL CON LM35");

delay_ms(1000);

while(true)

{

set_adc_channel(0);

delay_us(20);

x=read_adc();

y=(5.0*x)/1023;

z=y*100;

lcd_gotoxy(1,1);

printf(lcd_putc," TEMPERATURA");

lcd_gotoxy(1,2);

printf(lcd_putc,"ACTUAL %01.2f oC ",z);

if (z==0)

{

output_low(pin_b0);

output_low(pin_b1);

output_low(pin_b2);

output_low(pin_b3);

output_low(pin_b4);

}

if(z>0&&z<=5)

{

output_high(pin_b0);

output_low(pin_b1);

output_low(pin_b2);

output_low(pin_b3);

output_low(pin_b4);

}

if(z>5&&z<=10)

{

output_high(pin_b0);

output_high(pin_b1);

output_low(pin_b2);

output_low(pin_b3);

output_low(pin_b4);

}

if(z>10&&z<=15)

{

output_high(pin_b0);

output_high(pin_b1);

output_high(pin_b2);

output_low(pin_b3);

output_low(pin_b4);

}

if(z>15&&z<=20)

{

output_high(pin_b0);

output_high(pin_b1);

output_high(pin_b2);

output_high(pin_b3);

output_low(pin_b4);

}

if(z>20&&z<=25)

{

output_high(pin_b0);

output_high(pin_b1);

output_high(pin_b2);

output_high(pin_b3);

output_high(pin_b4);

output_low(pin_b5);

}

if(z>25)

{

output_high(pin_b0);

output_high(pin_b1);

output_high(pin_b2);

output_high(pin_b3);

output_high(pin_b4);

output_high(pin_b5);

}

else

{

output_low(pin_b5);

}

}

}

50