Lỗi code mạch đo nhiệt độ dùng LM35
em mới học Pic,đang tập viết code cho mạch đo nhiệt độ dùng LM35 hiển thị trên LED 7SEG nhưng không chạy được,bác nào rảnh xem hộ e vs.
code e viết đây ạ.....
//Cau Hinh PIC
#include "16f877a.h"//KHAI BAO THU VIEN
#fuses XT,NOWDT,NOPUT,BROWNOUT,NOLVP,NOWRT,NODEBUG,NOPROT ECT//KHAI BAO PIC
#use delay(clock=4000000)//KHAI BAO TAN SO THACH ANH
#device *=16 adc=8;
unsigned char const ma_LED[10]= {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//khai bao ma led
unsigned char chuc,donvi;//Cac bien chu so
int nhietdo,hienthi;
void convert_bcd(int8 x)
{
chuc=x%10;
donvi=x/10;
donvi=donvi%10;
}
void hienthi()
{
OUTPUT_D( ma_LED[chuc]); output_B(0b11111110);
delay_ms(10);
output_B(0b11111111);
OUTPUT_D( ma_LED [donvi]); output_B(0b11111101);
delay_ms(10);
output_B(0b11111111);
}
//CHUONG TRINH CHINH
void main()
{
{
SET_TRIS_B(0X00); //Port B là output(ngo ra)
SET_TRIS_D(0x00); //port D la output(ngo ra)
setup_ADC(ADC_clock_internal);//T/G lay mau bang xung clock
setup_ADC_ports(AN0);//Lay Vref=5V
set_ADC_channel(0);//chon chan A0 la chan dua tin hieu Analog vao
delay_us(10);//tao khoang t/g de lay mau
nhietdo=read_adc();//doc tin hieu vao
nhietdo=nhietdo/2.048;
convert_bcd((int8)nhietdo);//chuyen doi ADC
//Vong lap
while(1)
{
nhietdo=read_adc();
nhietdo=nhietdo/2.048;
hienthi();
}
}
}
|