LIST P=16F628			

#INCLUDE "P16F628.INC"		

__CONFIG _XT_OSC&_WDT_OFF&_LVP_OFF&_PWRTE_ON&_MCLRE_OFF		

	CBLOCK 0x20		
				
	T2			

	T1

	ENDC

	ORG	0
	GOTO	START
	ORG	4		;itt kezdődik a megszakítás
	BCF	PIR1,CMIF	;itt ezt lenullázom, hogy ha kilépek a megszakításból, akkor
	MOVLW	B'00000001'	;megint lehessen
	MOVWF	PORTB		;itt a portb0-ás lábon egy ideig 1 lesz
	CALL	DELAY
	CLRF	PORTB		;törlöm portb-t
	RETFIE			;kilépek

		
START	BSF	STATUS,RP0 	;BANK1
	;MOVLW	B'00001111'	
	;MOVWF	TRISA		
	MOVLW	B'00000000'	;beállítom portb-t kimenetnek
	MOVWF	TRISB

	BSF	PIE1,CMIE	;engedélyezem a komparátoros megszakítást

	BCF	STATUS,RP0 	;BANK0

	MOVLW	B'00000100'	;beállítom a komparátorokat
	MOVWF	CMCON

	BSF	INTCON,GIE	;engedélyezem a főmegszakításkapcsolót
	BSF	INTCON,PEIE	;ezt is engedélyezem(megszakítással kapcsolatos)

	CLRF	PORTB
	;CLRF	PORTA

VISSZA:				;főprogram itt nincs semmi
	;BSF	PIR1,CMIF	;ha ezt 1-be rakom, akkor megszakítás lesz
	GOTO	VISSZA

DELAY:	MOVLW	d'150'		;ez egy késleltetés
	MOVWF	T1
DEL:	MOVLW	d'255'
	MOVWF	T2
DEL1:	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DECFSZ	T2,f
	GOTO	DEL1
	DECFSZ	T1,f
	GOTO	DEL
	RETURN
	END
