c koduda bu
#include <16F876A.h>
#device adc=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=4000000)
unsigned long int adc;
void ileri(void){
output_high(pin_c0);output_low(pin_c1);
output_high(pin_c6);output_low(pin_c7);
output_high(pin_c2);output_high(pin_c5);
delay_ms(adc);
output_low(pin_c2);output_low(pin_c5);
}
void geri(void){
output_high(pin_c1);output_low(pin_c0);
output_high(pin_c7);output_low(pin_c6);
output_high(pin_c2);output_high(pin_c5);
delay_ms(adc);
output_low(pin_c2);output_low(pin_c5);
}
void main()
{
setup_adc_ports(AN0); //ANALOG GİRİŞLER TANIMLANIYOR
setup_adc(ADC_CLOCK_INTERNAL); // SADECE A0 ANALOG GİRİŞİ AÇILMIŞ
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_adc_channel(0);
output_low(pin_c2);output_low(pin_c5);
delay_ms(500);
while(1){
off:
if(input(pin_a5)==1)goto off;
while(!input(pin_a1)==1){if(input(pin_a5)==1)goto off;}
if(input(pin_a1)==1){
delay_us(50);
adc=read_adc()*5;
delay_us(50);
ileri();}
while(input(pin_a1));
geri();
}}