Đo nhiệt độ với 16f877a và LM35 dùng BCD 4511
Hi các bro!mình có làm bài thực hành đo nhiệt độ với LM35 dùng 4511 BCD .Mình đã cho chạy mô phỏng bằng proteus thì thấy nhiệt độ hiển thị đúng ở dải dưới 100 độ C,từ 100 độ C trở lên thì thấy hiển thị không còn đúng nửa.Các bro xem qua và cho ý kiến nha.
đây là đoạn code của mình :
// CHUONG TRINH CON TACH SO HANG CHUC VA HANG DON VI
void tachso()
{
donvi=adc%10; // CHU SO HANG DON VI
chuc=adc/10; // CHU SO HANG CHUC
tram=adc/100; //chu so hang tram
}
// chuong trinh chuyen doi do C
void convert()
{
adc=read_adc();
adc=adc/2.048;
}
// CHUONG TRINH CON HIEN THI RA 2 LED 7 DOAN
void display()
{
portb=a[donvi];
output_high(pin_d0); //chot data
portb=a[chuc];
output_high(pin_d1); //chot data
portb=a[tram];
output_high(pin_d2); //chot data
delay_ms(500);
output_low(pin_d0); //lay data
output_low(pin_d1); //lay data
output_low(pin_d2); //lay data
delay_us(1);
}
mình đính kèm file demo lun nà.
thay đổi nội dung bởi: tumi_kt, 29-10-2010 lúc 08:59 AM.
|