;----------------------------- .ASM file voor het Politie project -------------------------
;
;	PIC16F84A ASM file
;	Gemaakt door Bastiaan Steenbergen
;
;	Dit programma laat 2 led's knipperen, eerst 10x links, dan 10 rechts, enz.
;	Sluit led 1 aan op RA0, en led 2 op RA1
;	Zie www.circuitsonline.net voor het schema van dit mini-project en
;	de Microcontroller tutorial
;
;-----------------------------------------------------------------------------------------

porta		EQU	05h
teller		EQU	40h
teller2	        EQU	41h
teller3		EQU	42h
instelporta     EQU	85h

                ORG	00h     	;beginadres kiezen

		BSF 	03,5		;kies bank 1
		CLRF	instelporta	;alles pinnen poort A uitgang maken
	        BCF 	03,5		;kies bank 0
	        CALL	knipperkeer


led1		MOVLW	01h		;laad 01h in W
		MOVWF	porta		;zet 1 ledje aan
		CALL	tijdjewachten	;roep de subroutine voor de delay aan

		MOVLW	00h		
		MOVWF	porta		; zet alle leds weer uit
		CALL	tijdjewachten

		DECFSZ	teller3, 1
		GOTO	led1
		CALL	knipperkeer


led2		MOVLW	02h		;laad 02h in W
		MOVWF	porta		;zet 1 ledje aan
		CALL	tijdjewachten	;roep de subroutine voor de delay aan

		MOVLW	00h		
		MOVWF	porta		; zet alle leds weer uit
		CALL	tijdjewachten

		DECFSZ	teller3, 1
		GOTO	led2
		CALL	knipperkeer
		GOTO	led1
		

;---------SUB ROUTINES------------------
knipperkeer	MOVLW	0Ah		;hoevaak moet de 1e knipperen voordat de 2e gaat en andersom?
		MOVWF	teller3		;zet dit in teller3, dus op locatie 42h
		RETURN			;ga retour van waar je vandaan kwam


tijdjewachten   MOVLW	0FFh		;laad 0FFh in W
        	MOVWF	teller2
verder          MOVLW	0FFh
        	MOVWF	teller
opnieuw         DECFSZ	teller, 1
        	GOTO	opnieuw
        	DECFSZ	teller2, 1
        	GOTO	verder
		RETURN			; spring weer terug van waar je vandaan kwam

		END
