#include <16F84A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
#define button
int i=0;
int oku=0;
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
set_tris_a(255);
set_tris_b(0x00);
output_b(0);
while(1)
{
if(input(pin_a0)) //buton okunuyor
{
delay_ms(15); //buton arkları için bekleme
i++; //her butona basılışta artır
while(input(pin_a0)) //buton bırakılana kadar bekle
{
switch (i)
{
case 1: //butona 1 defa basılmışsa
output_high(pin_b0);
break;
case 2: //butona 2 defa basılmışsa
output_low(pin_b0);
break;
case 3: //butona 3 defa basılmışsa
output_high(pin_b1);
delay_ms(5000);
output_low(pin_b1);
break;
case 4: //butona 4 defa basılmışsa
output_high(pin_b2);
delay_ms(5000);
output_low(pin_b2);
break;
default:
if(i>=4)
{
i=0;
output_b(0);
}
}
}
}
}
}