![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Aug 2013
Bài gửi: 4
: |
![]() 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 |
![]() |
![]() |
|
|