ADC 10 bit ayarlandı,
iç osilatör kullanıldı,
iç osilatör 4MHZ ayarlandı,
MCLR ucu (reset) chip içersinden iptal edildi,
While döngüsü kullanıldı.
if koşulu ilede sıçaklık değerleri set edildi.
#include <12f683.h>
#device ADC=10
#fuses NOWDT,INTRC_IO,NOMCLR,BROWNOUT
#use delay (clock=4000000)
#use fast_io(a)
#define load1 pin_a1
#define load2 pin_a2
#define load4 pin_a4
#define load5 pin_a5
#define temp1 33.0
#define temp2 35.0
#define temp4 36.0
#define temp5 37.0
unsigned long int okunan;
float voltaj;
void main ( )
{
set_tris_a(0x01);
output_a(0x01);
setup_adc(adc_clock_div_32);
setup_adc_ports(sAN0);
while(true)
{
set_adc_channel(0);
delay_us(20);
okunan = read_adc();
voltaj = okunan * 0.00488 * 100;
if(voltaj >= temp1) output_high(load1);
else output_low(load1);
if(voltaj >= temp2) output_high(load2);
else output_low(load2);
if(voltaj >= temp4) output_high(load4);
else output_low(load4);
if(voltaj >= temp5) output_high(load5);
else output_low(load5);
delay_ms(100);
}
}
Hiç yorum yok:
Yorum Gönder
Her yorum bilgidir. Araştırmaya devam...