bạn có thể làm như thế này mình ví dụ dùng 2 kênh adc thôi nha.còn lại bạn làm tương tự nhá. đây là code đo adc 2 kênh dùng để tính Công Suất= UxI. Thân
/////////////////////////////////////////////////////////////////////////////////////
#include <16F877A.h>
#include <def_877a.h>
#device adc=8
#FUSES HS
#use delay(clock=8000000)
#include <lcd1_doan.c>
int16 giatriadc0,giatriadc1;
float tong,von,ampe;
void channel_0();
void channel_1();
void congsuatP();
#int_rda
void main()
{
set_adc_channel(1);
setup_adc(adc_clock_internal);
setup_adc_ports(ALL_ANALOG);
enable_interrupts(int_rda) ;
enable_interrupts(global) ;
lcd_init();
printf(lcd_putc,"*DH-CNTPHCM_HUI*");
while(1)
{
channel_0();
delay_ms(100);
channel_1();
delay_ms(10);
congsuatP();
lcd_gotoxy(1,2);
printf(lcd_putc,"%3.1f",tong);
lcd_gotoxy(7,2);
lcd_putc("KW");
}
}
void channel_0()
{
set_adc_channel(1);
giatriadc0=read_adc();
von=(float)giatriadc0*76/51;
}
void channel_1()
{
set_adc_channel(2);
giatriadc1=read_adc();
ampe=(float)giatriadc1/51;
}
void congsuatP()
{
tong=(float)von*ampe/1000;
}
/////////////////////////////////////////////////////////////////////
|