#include <16F876.h>
#device ADC=10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)
void main(void)
{
int16 sure, sayi, i, cycle;
int8 loop;
/* adc modülü ayarlanıyor */
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
while(TRUE)
{
/* 1. ADC kanalını seç ve değeri oku*/
set_adc_channel(0);
delay_us(100);
sure = read_adc();
/* 2. ADC kanalını seç ve değeri oku*/
set_adc_channel(1);
delay_us(100);
sayi = read_adc();
// Belirnen sürede kaç defa yanacağı bulunuyor (1-10 arası)
loop = sayi / 100;
// Yanması gereken süre belirleniyor (10-10000ms arası)
cycle = sure * 10;
printf("On/Off %d time!", loop);
puts(" ");
delay_ms(1);
printf("Cycle in %ld ms", cycle);
puts(" ");
delay_ms(1);
printf("************************");
puts(" ");
cycle = (cycle / loop) / 2;
for(i=0; i<=loop-1; i++) //max 10 kere yanıp söncek
{
output_high(PIN_c0);
delay_ms(cycle);
output_low(PIN_c0);
delay_ms(cycle);
}
output_low(PIN_c0);
delay_ms(10*sure);
}
}