#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)//4mhz kristal
#use fast_io(a)
#use fast_io(b)
int gecici1=0,gecici2=0; //gecici1 birinci led için,gecici2 ikinci led için
void main ()
{
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
set_tris_a(0x03); // 0x03=00000011 olduğu için...yani A portunun ilk 2 pin giriş diğerleri çıkış
set_tris_b(0x00); // B portu komple çıkış
output_a(0x00);//A portu ilk değerler sıfırlanıyo
output_b(0x00);//B portu ilk değerler sıfırlanıyo
while(1)//sonsuz döngü
{
delay_ms(50);//50ms gecikme
if(input(pin_a0))//herhangi bir zamanda birinci butona bastın
{
output_high(pin_b0);//birinci ledi yak
gecici1=200;//200 sayısı gecikmeye göre 10 saniye olması için gereken sayı.yani 10000/50=200
}
if(input(pin_a1))//herhangi bir zamanda ikinci butona bastın
{
output_high(pin_b1);
gecici2=200;
}
if(gecici1<=0)
{
gecici1=0;
output_low(pin_b0);
}
if(gecici2<=0)
{
gecici2=0;
output_low(pin_b1);
}
//her 50 msde bir gecikme1 ve gecikme2 değeri 1 azaltılıyo
gecici1--;
gecici2--;
}
}