|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
29-04-2012, 10:55 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Apr 2012
Bài gửi: 3
: |
nhờ giúp đở mạch tưới nước dùng 16f877 và lm 35
em mới tìm hiểu về PIC16F877A và viết bằng CCS 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 vẫn 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, còn mấy ngày nữa nộp bài rồi mà viết hoài không được! |
|
|