|
Tài trợ cho PIC Vietnam |
Analog - Bộ nhớ - Bảo mật - Cảm biến nhiệt độ Thảo luận việc sử dụng và thay thế các sản phẩm Analog, Memory, KEELOG và cảm biến nhiệt độ của Microchip cho các thiết kế |
|
Ðiều Chỉnh | Xếp Bài |
28-04-2012, 11:06 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Apr 2012
Bài gửi: 3
: |
xin chỉ dẫn về code!
em mới tìm hiểu về PIC16F877A nên ko biết nhiều, mong các anh chị chỉ giùm em.
e dùng lm35 và PIC16F877A! sườn bài như thế này: - nếu A5=mức cao => B0=mức cao (delay_ms (100)) - nếu A5=mức thấp => B0=mức thấp (delay_ms(60000)) - trong lúc chân B0 đang ở mức thấp mà LM35 lên đến nhiệt độ là 37c thì B0 lên mức cao. chương trình của em nếu chạy riêng 2 yêu cầu thì được nhưng nếu chạy chung thì LM35 có lên bao nhiêu độ chân B0 vẫn không lên mức cao được! đây là code của em: #include <16f877a.h> #use delay(clock=4000000) int i; unsigned char tVal; //+++++++++++++++++++++ void nhietdo() { if(tVal<=37) { output_low(PIN_B0); delay_ms(1000); } else { output_high(PIN_B0); delay_ms(1000); } } //+++++++++++++++++++++ #INT_RTCC void tuoi_theo_c() { nhietdo(); } //+++++++++++++++++++++ void main() { enable_interrupts(GLOBAL); enable_interrupts(INT_RTCC); setup_timer_0(RTCC_DIV_8); setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports( RA0_RA1_ANALOG_RA3_REF ); while(TRUE) { set_adc_channel(0); delay_ms(10); tVal = (float)read_adc(); if(input(pin_A5)) { output_high(PIN_B0); delay_ms(100); output_low (PIN_B0); { for (i=1;i<=10;++i) delay_ms(6000); } } } } Mong các anh chị giúp em gấp! thay đổi nội dung bởi: legolas_2801, 28-04-2012 lúc 11:09 PM. Lý do: viết thiếu |
30-04-2012, 03:25 PM | #2 |
Đệ tử 2 túi
Tham gia ngày: Sep 2011
Bài gửi: 32
: |
Thay B0 bằng chân khác thử được không !
|
|
|