View Single Post
Old 13-09-2014, 07:58 PM   #1
duykhanhuctdt4
Nhập môn đệ tử
 
Tham gia ngày: Aug 2013
Bài gửi: 4
:
Angry ai biết đo adc 2 kênh ko giúp mình với

Mình định đo adc 2 kênh nhưng khi viết code nếu setup kênh nào sau thì chỉ đo đc adc kênh đó thôi .ai giúp mình đây là code của mình
NHƯ CODE Ở DƯỚI THÌ CHỈ ĐO ĐC ADC CỦA KÊNH AN1 THÔI
#include <16f877a.h>
#device adc=10
#include <def_877a.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20M)
#include <lcd_lib_4bit.c>
unsigned int16 nghin, tram, chuc, donvi, adc;
float value;
#int_timer0
void interrupts_timer0()
{
TMR0IF = 0;
}

void hienthi(unsigned int16 giatri)
{
nghin=giatri/1000;
tram=(giatri-nghin*1000)/100;
chuc=(giatri-nghin*1000-tram*100)/10;
donvi=giatri%10;
lcd_putchar(nghin+48);
lcd_putchar(tram+48);
lcd_putchar(chuc+48);
lcd_putchar(donvi+48);
lcd_putchar(" ");
}
void doc_adc_0(void)
{
set_adc_channel(0);
delay_us(10);
value=read_adc();
adc=(value*2200)/1023;
}
void doc_adc_1(void)
{
lcd_putcmd(0xc0);
set_adc_channel(1);
delay_us(10);
value=read_adc();
adc=(value*4500)/1023;
}
void main()
{

set_tris_a(0x01);
set_tris_d(0x00);
lcd_init();
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(6);
enable_interrupts(int_timer0);
setup_adc_ports(all_analog);
setup_adc(adc_clock_internal);
while(true)
{
doc_adc_0();
delay_ms(100);
doc_adc_1();
lcd_putcmd(0x80);
lcd_putchar(" adc: ");
hienthi(adc);
}
}
thank nha
duykhanhuctdt4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn