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 B0 bằng chân khác thử được không !
|
Múi giờ GMT. Hiện tại là 08:23 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