View Single Post
Old 29-05-2007, 09:28 PM   #8
zero
Đệ tử 4 túi
 
Tham gia ngày: Feb 2007
Bài gửi: 87
:
Send a message via Yahoo to zero
Chán nhỉ chẳng có mấy người hào hứng với cái ứng dụng này.
Về cái mạch kết nối với con 12C887 thì tôi chưa có thời gian nghiên cứu được. Nhưng tôi sẽ Post phần dùng mạch đo nhiệt độ.
Vì mạch này tôi chỉ đưa ra để test cho mọi người thấy nên chưa quan tâm đến bố trí và tối ưu về cách sử dụng chân.
Dùng Port B để nối đến 8 Led báo (Hiển thị Giá trị đo được)
Kết nối con LM35:
1 => VDD
2 => PA0 (AN0) số 2
3 => VSS

Dùng một biến trở 10K mắc vào chân số 5 (RA3 Vref) chỉnh điện áp khoảng 2,5V
Code:
#include <16F877A.h>
#DEVICE ADC=8
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=12000000)
void main() {
   int i, value, min, max;
   setup_adc_ports(ALL_ANALOG);
   setup_adc( ADC_CLOCK_INTERNAL );
   set_adc_channel(0);
   set_tris_b(0);
while(1){
         value = Read_ADC();
         delay_ms(800);//Lâu lâu một tý để nhìn xem thấy nó có nhẩy giá trị lên ko
         output_b(value);
   }
}
Nếu bạn ko dùng hàm Delay_ms(800) thì cần đọc cờ ngắt ADC để đảm bảo quá trình chuyển đổi hoàn tất.
Lần sau có dịp tôi sẽ post chương trình cải tiến sử dụng INT_ADC để báo trạng thái chuyển đổi AD
__________________
Today Not Tomorow ....
YM: hoangcuong2k <= Ai rảnh thì chat nhé
zero vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn