;A DIP kapcsolók állásától függően 15 különböző programot hajt végre a LED-eken
;ugrótábla használatával 


	LIST P=16F84			;HASZNÁLT PICTIPUS

	#INCLUDE "P16F84.INC"		;SZIMBÓLUMHALMAZ MEGADÁSA

	__CONFIG _XT_OSC&_CP_OFF&_WDT_OFF	;KONFIGURÁCIÓS BITEK BEÁLLÍTÁSA

	CBLOCK	0X0C			;ÁLTALÁNOS CÉLÚ REGISZTEREK DEKLARÁLÁSA
	ALATCH
	TIME1
	TIME2
	TIME3
	TIME4
	TIME5
	TIME6
	TIME7
	TIME8
	TIME9
	TIME10
	TIME11

	ENDC				;REGISZTERBLOKK VÉGE


	ORG	0			;KEZDŐCÍM
	GOTO	START	

	ORG	4			;MEGSZAKÍTÁSI VEKTOR

START
	BSF	STATUS,RP0		;BANK1
	
	MOVLW	B'00011111'
	MOVWF	TRISA			;A-PORT IRÁNYÁNAK MEGHATÁROZÁSA
	
	MOVLW	B'00000000'
	MOVWF	TRISB			;B-PORT IRÁNYÁNAK MEGHATÁROZA
	
	BCF	STATUS,RP0		;BANK 0
;----------------------------------------------------------
STAR	MOVLW	HIGH	JTABLE		;PCH KÖZVETETT MEGCÍMZÉSE
	MOVWF	PCLATH

	MOVF	PORTA,W			;KAPCSOLÓK ÁLLÁSÁNAK LEKÉRDEZÉSE
	MOVWF	ALATCH
	RRF	ALATCH,W
	ANDLW	B'00001111'		;MASZK (FELSŐ BITEK NEM KELLENEK)
	GOTO	JTABLE

;----------------------------------------------------------

;---------------------------------------------------
;------------------------------------------------------
	
;----------------------------------------------------------
F0	BCF	STATUS,C		;CARRYBIT LENULLÁZÁSA
	MOVLW	B'10000000'
	MOVWF	PORTB
AGAIN	MOVLW	D'3'
	MOVWF	TIME3			;TIME3 FELTÖLTÉSE
	MOVLW	D'3'
	MOVWF	TIME4			;TIME4 FELTÖLTÉSE
	
FORG

	CALL	DELAY

	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA EGYET
	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA EGYET
	DECFSZ 	TIME3,F			;TIME3-BÓL LEVONUNK EGYET, ÉS UGRUNK EGY SORT, HA NULLA
	GOTO	FORG
		
FORG1

	CALL	DELAY

	RLF	PORTB,F			;FORGATÁS A BITEKEN BALRA EGYET
	RLF	PORTB,F			;FORGATÁS A BITEKEN BALRA EGYET
	DECFSZ 	TIME4,F			;TIME4-BÓL LEVONUNK EGYET, ÉS UGRUNK EGY SORT, HA NULLA
	GOTO	FORG1
	GOTO	STAR

;---------------------------------------------------

	
F1	MOVLW	B'01010101'
	MOVWF	PORTB
	GOTO	STAR
	
;---------------------------------------------------

F2	MOVLW	B'10101010'
	MOVWF	PORTB
	GOTO	STAR

;---------------------------------------------------
F3	MOVLW	B'11111111'
	MOVWF	PORTB
	GOTO	STAR

;---------------------------------------------------

F4	MOVLW	B'01010101'
	MOVWF	PORTB
	CALL	DELAY
	CLRF	PORTB
	CALL	DELAY
	GOTO	STAR
;---------------------------------------------------

F5	MOVLW	B'10101010'
	MOVWF	PORTB
	CALL	DELAY
	CLRF	PORTB
	CALL	DELAY
	GOTO	STAR

;---------------------------------------------------

F6	MOVLW	B'11111111'
	MOVWF	PORTB
	CALL	DELAY
	CLRF	PORTB
	CALL	DELAY
	GOTO	STAR

;---------------------------------------------------

F7	MOVLW	B'10101010'
	MOVWF	PORTB
	CALL	DELAY
	MOVLW	B'01010101'
	MOVWF	PORTB
	CALL	DELAY
	GOTO	STAR

;---------------------------------------------------

F8	MOVLW	B'01010101'
	MOVWF	PORTB
	CALL	DELAY
	MOVLW	B'10101010'
	MOVWF	PORTB
	CALL	DELAY
	GOTO	STAR

;---------------------------------------------------

F9	MOVLW	B'10101010'
	MOVWF	PORTB
	CALL	DELAY
	MOVLW	B'01010101'
	MOVWF	PORTB
	CALL	DELAY
	MOVLW	B'11111111'
	MOVWF	PORTB
	CALL	DELAY
	GOTO	START

;---------------------------------------------------
F10	BCF	STATUS,C		;CARRYBIT LENULLÁZÁSA
	MOVLW	B'10000000'
	MOVWF	PORTB
AGAIN2	MOVLW	D'3'
	MOVWF	TIME5			;TIME5 FELTÖLTÉSE
	MOVLW	D'3'
	MOVWF	TIME6			;TIME6 FELTÖLTÉSE
	
FORG3

	CALL	DELAY

	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA EGYET
	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA EGYET
	DECFSZ 	TIME5,F			;TIME3-BÓL LEVONUNK EGYET, ÉS UGRUNK EGY SORT, HA NULLA
	GOTO	FORG3
	CALL	DELAY
	RRF	PORTB,F			;FORGATÁS A BITEKEN BALRA EGYET	
FORG4
	CALL	DELAY

	RLF	PORTB,F			;FORGATÁS A BITEKEN BALRA EGYET
	RLF	PORTB,F
	DECFSZ 	TIME6,F			;TIME4-BÓL LEVONUNK EGYET, ÉS UGRUNK EGY SORT, HA NULLA
	GOTO	FORG4
	CALL	DELAY
	RLF	PORTB,F
	GOTO	STAR

;-----------------------------------------------------------

F11	BCF	STATUS,C			;CARRYBIT LENULLÁZÁSA
	MOVLW	B'01000000'
	MOVWF	PORTB
AGAIN3	MOVLW	D'3'
	MOVWF	TIME7				;TIME7 FELTÖLTÉSE
	MOVLW	D'3'
	MOVWF	TIME8				;TIME8 FELTÖLTÉSE
	
FORG5

	CALL	DELAY

	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA EGYET
	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA EGYET
	DECFSZ 	TIME7,F			;TIME6-BÓL LEVONUNK EGYET, ÉS UGRUNK EGY SORT, HA NULLA
	GOTO	FORG5
	CALL	DELAY
	RLF	PORTB,F			;FORGATÁS A BITEKEN BALRA EGYET	
FORG6
	CALL	DELAY
	RLF	PORTB,F			;FORGATÁS A BITEKEN BALRA EGYET
	RLF	PORTB,F
	DECFSZ 	TIME8,F			;TIME4-BÓL LEVONUNK EGYET, ÉS UGRUNK EGY SORT, HA NULLA
	GOTO	FORG6
	CALL	DELAY
	RLF	PORTB,F
	GOTO	STAR
		
;-----------------------------------------------------------
F12	BCF	STATUS,C		;CARRYBIT LENULLÁZÁSA
	MOVLW	B'00010101'
	MOVWF	PORTB
AGAIN4	MOVLW	D'3'
	MOVWF	TIME9			;TIME9 FELTÖLTÉSE
	MOVLW	D'3'
	MOVWF	TIME10			;TIME10 FELTÖLTÉSE
	
FORG7

	CALL	DELAY

	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA EGYET
	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA EGYET
	DECFSZ 	TIME9,F			;TIME9-BÓL LEVONUNK EGYET, ÉS UGRUNK EGY SORT, HA NULLA
	GOTO	FORG7
	CALL	DELAY
		
FORG8
	CALL	DELAY
	RLF	PORTB,F			;FORGATÁS A BITEKEN BALRA EGYET
	RLF	PORTB,F
	DECFSZ 	TIME10,F		;TIME10-BÓL LEVONUNK EGYET, ÉS UGRUNK EGY SORT, HA NULLA
	GOTO	FORG8
	CALL	DELAY
	GOTO	STAR

;------------------------------------------------------------
F13	BCF	STATUS,C		;CARRYBIT LENULLÁZÁSA
	MOVLW	B'00010101'
	MOVWF	PORTB	
	CALL	DELAY
	MOVLW	B'01000101'
	MOVWF	PORTB	
	CALL	DELAY
	MOVLW	B'01010001'
	MOVWF	PORTB	
	CALL	DELAY
	MOVLW	B'01010100'
	MOVWF	PORTB	
	CALL	DELAY
	GOTO	STAR

;------------------------------------------------------------

F14	BCF	STATUS,C		;CARRYBIT LENULLÁZÁSA
	MOVLW	B'00010101'
	MOVWF	PORTB	
	CALL	DELAY
	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA
	RRF	PORTB,F			;FORGATÁS A BITEKEN JOBBRA
	MOVWF	PORTB
	CALL	DELAY
	GOTO	STAR

;--VÁRAKOZÁSI RUTIN---------------------------------------------------------

DELAY
	
;	RETURN

	MOVLW	.200
	MOVWF	TIME2
DELAY2	MOVLW	.255
	MOVWF	TIME1
DELAY1	NOP
	NOP
	DECFSZ	TIME1
	GOTO	DELAY1
	DECFSZ	TIME2
	GOTO	DELAY2
	RETURN		


;---------------UGRÓTÁBLA-----------------------------------



	ORG	300
		
JTABLE					;UGRÓTÁBLA

	ADDWF	PCL,F			;W HOZZÁADÁSA A PROGRAMSZÁMLÁLÓ ALSÓ BYTE-JÁHOZ
	GOTO	F0
	GOTO	F1	
	GOTO	F2	
	GOTO	F3
	GOTO	F4
	GOTO	F5
	GOTO	F6
	GOTO	F7
	GOTO	F8
	GOTO	F9
	GOTO	F10
	GOTO	F11
	GOTO	F12
	GOTO	F13
	GOTO	F14
	GOTO	F11
	GOTO	F11


	




	END			;PROGRAM VÉGE
