JecarDatha Electronics MICROCONTROLADOR 16F877A | Page 57

PROGRAMACION

#include <16F877a.h>

#device *=16 //definimos el dispositivo de medicion

#device adc=10 //llamamos el adcon1 registros adresh y adresl

#fuses hs,nowdt,noprotect

#use delay (clock= 4 MHZ)

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

#use standard_io(D)

int16 x;

float y;

void main()

{

lcd_init();

setup_timer_2(T2_DIV_BY_16,255,1); //configuracion del timer 2 y postcaler

setup_ccp1(ccp_pwm); //configuracion modo pwm

setup_adc(adc_clock_internal);

setup_adc_ports(RA0_ANALOG);

while(true)

{

set_adc_channel(0);

delay_us(20);

x=read_adc();

y=(x*100.0)/1023.0;

set_pwm1_duty(x);

lcd_gotoxy(1,1);

printf(lcd_putc,"VALOR= %4Lu\n",x);

printf(lcd_putc,"DC= %1.1f",y);

}

}

54