PDA

View Full Version : mọi người sửa em cái code này với


navypro
26-05-2013, 12:22 PM
em đọc ADC với thằng pic 18 nhưng mà kết quả luôn là 0v
#include <18F4331.h>
#device adc=10

#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
//#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES XT //Crystal osc <= 4mhz
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(clock=4000000)

#include "hienthiLCD.c"

int16 adc ;
float a;

void a_n()
{
set_adc_channel(sAN0); // SAI DOAN NAY. set_adc_channel(sAN0); HOAC set_adc_channel(1); sAN0 <=> 1
delay_us(20);
adc = read_adc ( ) ;
a=0.00488*adc;
}

void main()
{
SET_TRIS_A(0xFF);
SET_TRIS_B(0x00);
SET_TRIS_D(0x00);

setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(sAN0);

lcd_init();

while(TRUE)
{
a_n();
lcd_gotoxy (1,1);
printf(lcd_putc,"a: %f",a);
if(a>=0.2802)
output_high(PIN_D0);
else
{
output_low(PIN_D0);
output_high(PIN_D1);
}
}
}