PDA

View Full Version : xin chỉ dẫn về code!


legolas_2801
28-04-2012, 11:06 PM
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!

TRUNGBAOSPKT
30-04-2012, 03:25 PM
Thay B0 bằng chân khác thử được không !