 LIST P=16F877
 #INCLUDE "P16F877.INC"
 __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF&_LVP_OFF
	CBLOCK	0x20			;A 0x20 egy szabad memória rész kezdő címe
	KESLELTETO1
	SAVE_W
	SAVE_STATUS
	TESZT
	DELAYFLAGS
	ENDC

	#DEFINE MEGSZAK_VOLT DELAYFLAGS,0
	#DEFINE DELAY0 DELAYFLAGS,1

	ORG	0
	GOTO	START

	ORG	4
	MOVWF	SAVE_W
	MOVFW	STATUS
	MOVWF	SAVE_STATUS

	BTFSS		INTCON,T0IF
	GOTO		RESTORE

	BCF		INTCON,T0IF		;TIMER MEGSZAKÍTÁS VOLT
	BSF		 MEGSZAK_VOLT

RESTORE	
	MOVFW	SAVE_STATUS
	MOVWF	STATUS
	MOVFW	SAVE_W
	RETFIE


START

	BSF	STATUS,RP0			;BANK1-be átlépünk
	;PORTA Digitális I/O-vá tétel
	MOVLW	0x06			
	MOVWF	ADCON1			;Mindegyik PORTA digitális
	MOVLW	B'00011111'		;Betöltjük az akksiba a TRISA-ba irandót
	MOVWF	TRISA				;Beállítjuk a PORTA-t bemenetre (beírjuk a TRISA-ba)
	MOVLW	B'00000000'		;Betöltjük az akksiba a TRISD-be valót
	MOVWF	TRISD				;Beletöltjük (mind kimenet a nulla miatt)

	MOVLW	B'00000000'		;OPTION_REG ÜRÍTÉSE
	MOVWF	OPTION_REG		
	BCF		OPTION_REG,T0SE	;FELFUTO EL
	BCF		OPTION_REG,T0CS	;BELSŐ IDŐZÍTŐ
	BCF		OPTION_REG,PSA	;A TIMER OSZTÓT ÁLLÍTJUK
	BCF		OPTION_REG,PS2	;BITEK ÁLLÍTÁSA
	BCF		OPTION_REG,PS1	;
	BSF		OPTION_REG,PS0	;1:4

	BCF	STATUS,RP0			;BANK0-ba visszalépünk

	MOVLW	B'00000000'		;INTCON ÜRÍTÉSE
	MOVWF	INTCON
	BSF		INTCON,T0IE		;TIMER INTERRUPT LESZ
	BCF		INTCON,T0IF		;TIMER TULCSORDULÁS JELZŐ
	BSF		INTCON,GIE		;INTERRUPTOK ENGEDÉLYEZÉSE


	MOVLW	B'10000000'		;PORTD ALAPERTEK
	MOVWF	PORTD

FUTOFENY				
	RLF		PORTD,1			;BITFORGATÁS
	CALL		DELAY
	GOTO		FUTOFENY			;VEGTELEN CIKLUS


DELAY
	MOVLW	d'100'
	MOVWF	KESLELTETO1
D1
	BCF		DELAY0		
	BTFSC		MEGSZAK_VOLT	;MEGSZAKÍTAS FLAG VISZGÁLATA
	CALL		SETBIT0			;VOLT MEGSZAKÍTÁS VALTOZOK LEKEZELESE
	BTFSS		DELAY0			;HA DELAY0=1 AKKOR LEFUTOTT 0-RA A KÉSLELETETÉS VÉGE A DELAYNEK
	GOTO 		D1					;DELAY0 NEM 1
	RETURN

		
SETBIT0
	BCF		DELAY0			;DELAY0 TÖRLÉSE
	BCF		MEGSZAK_VOLT	;MEGSZAKÍTÁS FLAG TÖRLÉSE
	DECF		KESLELTETO1,f		;CSOKKENTJÜK A VALTOZÓT
	BTFSC		STATUS,Z			;HA LEMENT 0-RA, AKKOR Z BIT BEÁLL
	BSF		DELAY0			;DELAY0=1, LEMENT 0-RA A KÉSLELETETÉS 
	RETURN


 	END							;ITT A VÉGE FUSS EL VÉLE