'********************************** '********************************** DEVICE = 16F84A CONFIG XT_OSC , WDT_OFF , PWRTE_OFF XTAL = 4 '**********DEGISKENLER********** KRONO VAR BYTE SANIYE VAR BYTE ONLUK VAR BYTE SAYAC VAR BYTE 'INTERRUPT SAYACI' SAYAC2 VAR BYTE 'DURDURMA SAYACI' '********************************** START: KRONO=0 SANIYE=0 ONLUK=0 SAYAC2=0 OPTION_REG=$55 INTCON=$A0 ON INTERRUPT GOTO KESME PORTA=0 PORTA=0 TRISA=%00011000 TRISB=0 '************************************************** '*************** PROGRAM ‘BURADAN BASLIYOR *** '*************************************************** ANA_DONGU: IF PORTA.3=0 THEN DURDUR IF PORTA.4=0 THEN SIFIRLA PORTA=%00000001 IF KRONO=0 THEN GOSUB SIFIR ELSEIF KRONO=1 THEN GOSUB BIR ELSEIF KRONO=2 THEN GOSUB IKI ELSEIF KRONO=3 THEN GOSUB UC ELSEIF KRONO=4 THEN GOSUB DORT ELSEIF KRONO=5 THEN GOSUB BES ELSEIF KRONO=6 THEN GOSUB ALTI ELSEIF KRONO=7 THEN GOSUB YEDI ELSEIF KRONO=8 THEN GOSUB SEKIZ ELSE KRONO=9 THEN GOSUB DOKUZ ENDIF PAUSE 2 '2 ms BEKLIYOR' PORTB=$00 PORTA=%00000010 IF SANIYE=0 THEN GOSUB SIFIR ELSEIF SANIYE=1 THEN GOSUB BIR ELSEIF SANIYE=2 THEN GOSUB IKI ELSEIF SANIYE=3 THEN GOSUB UC ELSEIF SANIYE=4 THEN GOSUB DORT ELSEIF SANIYE=5 THEN GOSUB BES ELSEIF SANIYE=6 THEN GOSUB ALTI ELSEIF SANIYE=7 THEN GOSUB YEDI ELSEIF SANIYE=8 THEN GOSUB SEKIZ ELSE SANIYE=9 THEN GOSUB DOKUZ ENDIF PAUSE 2 PORTB=$00 PORTA=%00000100 IF ONLUK=0 THEN GOSUB SIFIR ELSEIF ONLUK=1 THEN GOSUB BIR ELSEIF ONLUK=2 THEN GOSUB IKI ELSEIF ONLUK=3 THEN GOSUB UC ELSEIF ONLUK=4 THEN GOSUB DORT ELSEIF ONLUK=5 THEN GOSUB BES ELSEIF ONLUK=6 THEN GOSUB ALTI ELSEIF ONLUK=7 THEN GOSUB YEDI ELSEIF ONLUK=8 THEN GOSUB SEKIZ ELSE ONLUK=9 THEN GOSUB DOKUZ ENDIF PAUSE 2 PORTB=$00 GOTO ANA_DONGU '********************************** GECIKME: PAUSE 2 RETURN SIFIR: PORTB=%10111111 GOSUB GECIKME RETURN BIR: PORTB=%00001101 GOSUB GECIKME RETURN IKI: PORTB=%01110111 GOSUB GECIKME RETURN UC: PORTB=%01101111 GOSUB GECIKME RETURN DORT: PORTB=%11001101 GOSUB GECIKME RETURN BES: PORTB=%11101110 GOSUB GECIKME RETURN ALTI: PORTB=%11111110 GOSUB GECIKME RETURN YEDI: PORTB=%00001111 GOSUB GECIKME RETURN SEKIZ: PORTB=%11111111 GOSUB GECIKME RETURN DOKUZ: PORTB=%11101111 GOSUB GECIKME RETURN '********************************** '******************** INTERRUPT ‘PROGRAMI BURASI '********************************** DISABLE KESME: SAYAC=SAYAC+1 IF SAYAC<6 THEN CIKIS SAYAC=0 KRONO=KRONO+1 IF KRONO>=10 THEN KRONO=0 SANIYE=SANIYE+1 IF SANIYE>=10 THEN SANIYE=0 ONLUK=ONLUK+1 IF ONLUK>=10 THEN ONLUK=0 ENDIF ENDIF ENDIF CIKIS: INTCON.2=0 'TIMER INTERRUPT BAYRAGINI SIFIRLAMA' ENABLE RESUME DURDUR: PAUSE 200 SAYAC2=SAYAC2+1 IF SAYAC2.0=1 THEN INTCON=$80 GOTO ANA_DONGU ELSE OPTION_REG=$55 INTCON=$A0 ON INTERRUPT GOTO KESME ENDIF GOTO ANA_DONGU SIFIRLA: PAUSE 5 GOTO START END