![]() |
Đo nhiệt độ với 16f877a và LM35 dùng BCD 4511
1 Attachment(s)
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à. |
hàm tachso() của bạn bị sai ở phần tách hàng chục vì khi adc >= 100, biến chục sẽ >= 10. Ví dụ: giả sử adc = 145 thì biến chuc sẽ có giá trị 14 thay vì 4.
|
help
mọi người ơi giúp mính sữa code này với , mình mô phỏng không chạy
|
Múi giờ GMT. Hiện tại là 12:38 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam