;******************************************************************************
; LocoSense V1.0 PIC16F59
; CONTROLLER 1 FW - SECTION 0-23
; 2010.09.03.-
;******************************************************************************

 LIST P=PIC16F59				;Processor tipusmegadás
 #INCLUDE "P16F5x.INC"			;Include fájl neve 
 errorlevel -302				;Bankhibajelzés kikapcsolása
 errorlevel -305				; 

;KONFIGURÁCIÓS SZÓ
 __CONFIG _CP_OFF & _HS_OSC & _WDT_OFF  

;VÁLTOZÓK DEKLARÁLÁSA
	CBLOCK 0xA
		PORTB_0					;MŰVELETI POZÍCIÓBIT
		PORTB_1					;MŰVELETI POZÍCIÓBIT
		PORTB_2					;MŰVELETI POZÍCIÓBIT
		PORTB_3					;MŰVELETI POZÍCIÓBIT
		PORTB_4					;MŰVELETI POZÍCIÓBIT
		PORTB_5					;MŰVELETI POZÍCIÓBIT
		PORTB_6					;MŰVELETI POZÍCIÓBIT
		PORTB_7					;MŰVELETI POZÍCIÓBIT
		PORTC_0					;MŰVELETI POZÍCIÓBIT
		PORTC_1					;MŰVELETI POZÍCIÓBIT
		PORTC_2					;MŰVELETI POZÍCIÓBIT
		PORTC_3					;MŰVELETI POZÍCIÓBIT
		PORTC_4					;MŰVELETI POZÍCIÓBIT
		PORTC_5					;MŰVELETI POZÍCIÓBIT
		PORTC_6					;MŰVELETI POZÍCIÓBIT
		PORTC_7					;MŰVELETI POZÍCIÓBIT
		PORTD_0					;MŰVELETI POZÍCIÓBIT
		PORTD_1					;MŰVELETI POZÍCIÓBIT
		PORTD_2					;MŰVELETI POZÍCIÓBIT
		PORTD_3					;MŰVELETI POZÍCIÓBIT
		PORTD_4					;MŰVELETI POZÍCIÓBIT
		PORTD_5					;MŰVELETI POZÍCIÓBIT
		PORTD_6					;MŰVELETI POZÍCIÓBIT
		PORTD_7					;MŰVELETI POZÍCIÓBIT
	ENDC						;CBLOCK VÉGE

 	ORG	  0						;VEKTOR 0
 	GOTO  START					;ALPROGRAMBA UGRÁS TEST RUTIN KIHAGYÁSÁVAL


INPUT
	MOVLW B'11111111'			;MIND BEMENET
	TRIS  PORTB
	TRIS  PORTC
	TRIS  PORTD
	RETLW D'0'					;VISSZAUGRÁS W 0-VAL VALÓ FELTÖLTÉSÉVEL

PB0
	COMF  PORTB_0,1				;PORTB_0 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'1'					;W FELTÖLTÉSE 1-EL
	MOVWF PORTA					;CPU COM 1-ES CÍMZÉS
	RETLW D'0'

PB1
	COMF  PORTB_1,1				;PORTB_1 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'2'
	MOVWF PORTA
	RETLW D'0'

PB2
	COMF  PORTB_2,1				;PORTB_2 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'3'
	MOVWF PORTA
	RETLW D'0'

PB3
	COMF  PORTB_3,1				;PORTB_3 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'4'
	MOVWF PORTA
	RETLW D'0'

PB4
	COMF  PORTB_4,1				;PORTB_4 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'5'
	MOVWF PORTA
	RETLW D'0'

PB5
	COMF  PORTB_5,1				;PORTB_5 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'6'
	MOVWF PORTA
	RETLW D'0'

PB6
	COMF  PORTB_6,1				;PORTB_6 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'7'
	MOVWF PORTA
	RETLW D'0'

PB7
	COMF  PORTB_7,1				;PORTB_7 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'8'
	MOVWF PORTA
	RETLW D'0'

PC0
	COMF  PORTC_0,1				;PORTC_0 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'9'					;W FELTÖLTÉSE 9-EL
	MOVWF PORTA					;CPU COM 9-ES CÍMZÉS
	RETLW D'0'

PC1
	COMF  PORTC_1,1				;PORTC_1 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'10'
	MOVWF PORTA
	RETLW D'0'

PC2
	COMF  PORTC_2,1				;PORTC_2 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'11'
	MOVWF PORTA
	RETLW D'0'

PC3
	COMF  PORTC_3,1				;PORTC_3 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'12'
	MOVWF PORTA
	RETLW D'0'

PC4
	COMF  PORTC_4,1				;PORTC_4 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'13'
	MOVWF PORTA
	RETLW D'0'

PC5
	COMF  PORTC_5,1				;PORTC_5 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'14'
	MOVWF PORTA
	RETLW D'0'

PC6
	COMF  PORTC_6,1				;PORTC_6 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'15'
	MOVWF PORTA
	RETLW D'0'

PC7
	COMF  PORTC_7,1				;PORTC_7 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'0'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	RETLW D'0'

PD0
	COMF  PORTD_0,1				;PORTD_0 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'1'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	RETLW D'0'

PD1
	COMF  PORTD_1,1				;PORTD_1 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'2'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	RETLW D'0'

PD2
	COMF  PORTD_2,1				;PORTD_2 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'3'
	MOVWF PORTA
	MOVLW D'16'
	RETLW D'0'

PD3
	COMF  PORTD_3,1				;PORTD_3 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'4'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	RETLW D'0'

PD4
	COMF  PORTD_4,1				;PORTD_4 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'5'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	RETLW D'0'

PD5
	COMF  PORTD_5,1				;PORTD_5 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'6'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	RETLW D'0'

PD6
	COMF  PORTD_6,1				;PORTD_6 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'7'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	RETLW D'0'

PD7
	COMF  PORTD_7,1				;PORTD_7 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'8'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	RETLW D'0'

OUTPUT0
	MOVLW B'11111110'			;W FELTÖLTÉSE 254-EL
	TRIS  PORTB					;RB0 KIMENET
	TRIS  PORTC					;RC0 KIMENET
	TRIS  PORTD					;RD0 KIMENET
	MOVFW PORTB_0				;PORTB_0 VÁLTOZÓ W-BE
	MOVWF PORTB					;W (PORTB_0) KIÍRATÁSA PORTB-RE
	MOVFW PORTC_0				;PORTC_0 VÁLTOZÓ W-BE
	MOVWF PORTC					;W (PORTC_0) KIÍRATÁSA PORTC-RE
	MOVFW PORTD_0				;PORTD_0 VÁLTOZÓ W-BE
	MOVWF PORTD					;W (PORTD_0) KIÍRATÁSA PORTD-RE
	RETLW D'0'

OUTPUT1
	MOVLW B'11111101'			;RB0 KIMENET
	TRIS  PORTB
	TRIS  PORTC
	TRIS  PORTD
	MOVFW PORTB_1
	MOVWF PORTB
	MOVFW PORTC_1
	MOVWF PORTC
	MOVFW PORTD_1
	MOVWF PORTD
	RETLW D'0'

OUTPUT2
	MOVLW B'11111011'			;RB0 KIMENET
	TRIS  PORTB
	TRIS  PORTC
	TRIS  PORTD
	MOVFW PORTB_2
	MOVWF PORTB
	MOVFW PORTC_2
	MOVWF PORTC
	MOVFW PORTD_2
	MOVWF PORTD
	RETLW D'0'

OUTPUT3
	MOVLW B'11110111'			;RB0 KIMENET
	TRIS  PORTB
	TRIS  PORTC
	TRIS  PORTD
	MOVFW PORTB_3
	MOVWF PORTB
	MOVFW PORTC_3
	MOVWF PORTC
	MOVFW PORTD_3
	MOVWF PORTD
	RETLW D'0'

OUTPUT4
	MOVLW B'11101111'			;RB0 KIMENET
	TRIS  PORTB
	TRIS  PORTC
	TRIS  PORTD
	MOVFW PORTB_4
	MOVWF PORTB
	MOVFW PORTC_4
	MOVWF PORTC
	MOVFW PORTD_4
	MOVWF PORTD
	RETLW D'0'

OUTPUT5
	MOVLW B'11011111'			;RB0 KIMENET
	TRIS  PORTB
	TRIS  PORTC
	TRIS  PORTD
	MOVFW PORTB_5
	MOVWF PORTB
	MOVFW PORTC_5
	MOVWF PORTC
	MOVFW PORTD_5
	MOVWF PORTD
	RETLW D'0'

OUTPUT6
	MOVLW B'10111111'			;RB0 KIMENET
	TRIS  PORTB
	TRIS  PORTC
	TRIS  PORTD
	MOVFW PORTB_6
	MOVWF PORTB
	MOVFW PORTC_6
	MOVWF PORTC
	MOVFW PORTD_6
	MOVWF PORTD
	RETLW D'0'

OUTPUT7
	MOVLW B'01111111'			;RB0 KIMENET
	TRIS  PORTB
	TRIS  PORTC
	TRIS  PORTD
	MOVFW PORTB_7
	MOVWF PORTB
	MOVFW PORTC_7
	MOVWF PORTC
	MOVFW PORTD_7
	MOVWF PORTD
	RETLW D'0'

TEST
	MOVLW D'0'					;W FELTÖLTÉSE 0-VAL
	TRIS  PORTB					;PORTB KIMENET
	TRIS  PORTC					;PORTC KIMENET
	TRIS  PORTD					;PORTD KIMENET
	MOVLW D'255'				;W FELTÖLTÉSE 255-TEL
	MOVWF PORTB					;PORTB BEMENET
	MOVWF PORTC					;PORTC BEMENET
	MOVWF PORTD					;PORTD BEMENET
	RETLW D'0'

START
	MOVLW D'0'					;W FELTÖLTÉSE 0-VAL
	TRIS  PORTA					;PORTA KIMENET (RA0-RA3)
	TRIS  PORTE					;PORTE KIMENET (RE4-RE7)
 	MOVLW D'255'				;W FELTÖLTÉSE 255-TEL
 	TRIS  PORTB					;PORTB BEMENET
 	TRIS  PORTC					;PORTC BEMENET
	TRIS  PORTD					;PORTD BEMENET
	CLRF  PORTB_0				;PORTB_0 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTB_1				;PORTB_1 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTB_2				;PORTB_2 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTB_3				;PORTB_3 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTB_4				;PORTB_4 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTB_5				;PORTB_5 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTB_6				;PORTB_6 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTB_7				;PORTB_7 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTC_0				;PORTC_0 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTC_1				;PORTC_1 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTC_2				;PORTC_2 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTC_3				;PORTC_3 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTC_4				;PORTC_4 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTC_5				;PORTC_5 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTC_6				;PORTC_6 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTC_7				;PORTC_7 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTD_0				;PORTD_0 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTD_1				;PORTD_1 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTD_2				;PORTD_2 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTD_3				;PORTD_3 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTD_4				;PORTD_4 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTD_5				;PORTD_5 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTD_6				;PORTD_6 VÁLTOZÓ ÜRÍTÉSE
	CLRF  PORTD_7				;PORTD_7 VÁLTOZÓ ÜRÍTÉSE
	MOVLW B'11111110'			;W FELTÖLTÉSE 254-EL
	MOVWF PORTB_0				;PORTB_0 ÉRTÉKE 254
	MOVWF PORTC_0				;PORTC_0 ÉRTÉKE 254
	MOVWF PORTD_0				;PORTD_0 ÉRTÉKE 254
	MOVLW B'11111101'			;W FELTÖLTÉSE 253-MAL
	MOVWF PORTB_1				;PORTB_1 ÉRTÉKE 253
	MOVWF PORTC_1				;PORTC_1 ÉRTÉKE 253
	MOVWF PORTD_1				;PORTD_1 ÉRTÉKE 253
	MOVLW B'11111011'			;W FELTÖLTÉSE 251-EL
	MOVWF PORTB_2				;PORTB_2 ÉRTÉKE 251
	MOVWF PORTC_2				;PORTC_2 ÉRTÉKE 251
	MOVWF PORTC_2				;PORTD_2 ÉRTÉKE 251
	MOVLW B'11110111'			;W FELTÖLTÉSE 247-TEL
	MOVWF PORTB_3				;PORTB_3 ÉRTÉKE 247
	MOVWF PORTC_3				;PORTC_3 ÉRTÉKE 247
	MOVWF PORTD_3				;PORTD_3 ÉRTÉKE 247
	MOVLW B'11101111'			;W FELTÖLTÉSE 239-CEL
	MOVWF PORTB_4				;PORTB_4 ÉRTÉKE 239
	MOVWF PORTC_4				;PORTC_4 ÉRTÉKE 239
	MOVWF PORTD_4				;PORTD_4 ÉRTÉKE 239
	MOVLW B'11011111'			;W FELTÖLTÉSE 223-MAL
	MOVWF PORTB_5				;PORTB_5 ÉRTÉKE 223
	MOVWF PORTC_5				;PORTC_5 ÉRTÉKE 223
	MOVWF PORTD_5				;PORTD_5 ÉRTÉKE 223
	MOVLW B'10111111'			;W FELTÖLTÉSE 191-EL
	MOVWF PORTB_6				;PORTB_6 ÉRTÉKE 191
	MOVWF PORTC_6				;PORTC_6 ÉRTÉKE 191
	MOVWF PORTD_6				;PORTD ÉRTÉKE 191
	MOVLW B'01111111'			;W FELTÖLTÉSE 127-TEL
	MOVWF PORTB_7				;PORTB_7 ÉRTÉKE 127
	MOVWF PORTC_7				;PORTC_7 ÉRTÉKE 127
	MOVWF PORTD_7				;PORTD_7 ÉRTÉKE127
	CLRW						;W REGISZTER ÜRÍTÉSE

PROGRAM
 	BTFSS PORTB,0				;RB0 BEOLVASÁSA
	CALL  PB0					;SZUBRUTIN HÍVÁS: PORTB_0 FORDÍTÁS, CPU COM CÍMZÉS 1				
	BTFSS PORTC,0				;RC0 BEOLVASÁSA
	CALL  PC0
	BTFSS PORTD,0				;RD0 BEOLVASÁSA
	CALL  PD0
	CALL  OUTPUT0	
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,1				;RB1 BEOLVASÁSA
	CALL  PB1
	BTFSS PORTC,1				;RC1 BEOLVASÁSA
	CALL  PC1
	BTFSS PORTD,1				;RD1 BEOLVASÁSA
	CALL  PD1
	CALL  OUTPUT1				;SZUBRUTIN HÍVÁS: Rx1 BITEK KIÍRATÁSA			
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,2				;RB2 BEOLVASÁSA
	CALL  PB2
	BTFSS PORTC,2				;RC2 BEOLVASÁSA
	CALL  PC2
	BTFSS PORTD,2				;RD2 BEOLVASÁSA
	CALL  PD2
	CALL  OUTPUT2				;SZUBRUTIN HÍVÁS: Rx2 BITEK KIÍRATÁSA			
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,3				;RB3 BEOLVASÁSA
	CALL  PB3
	BTFSS PORTC,3				;RC3 BEOLVASÁSA
	CALL  PC3
	BTFSS PORTD,3				;RD3 BEOLVASÁSA
	CALL  PD3
	CALL  OUTPUT3				;SZUBRUTIN HÍVÁS: Rx3 BITEK KIÍRATÁSA	
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,4				;RB4 BEOLVASÁSA
	CALL  PB4
	BTFSS PORTC,4				;RC4 BEOLVASÁSA
	CALL  PC4
	BTFSS PORTD,4				;RD4 BEOLVASÁSA
	CALL  PD4
	CALL  OUTPUT4				;SZUBRUTIN HÍVÁS: Rx4 BITEK KIÍRATÁSA	
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,5				;RB5 BEOLVASÁSA
	CALL  PB5
	BTFSS PORTC,5				;RC5 BEOLVASÁSA
	CALL  PC5
	BTFSS PORTD,5				;RD5 BEOLVASÁSA
	CALL  PD5
	CALL  OUTPUT5				;SZUBRUTIN HÍVÁS: Rx5 BITEK KIÍRATÁSA	
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,6				;RB6 BEOLVASÁSA
	CALL  PB6
	BTFSS PORTC,6				;RC6 BEOLVASÁSA
	CALL  PC6
	BTFSS PORTD,6				;RD6 BEOLVASÁSA
	CALL  PD6
	CALL  OUTPUT6				;SZUBRUTIN HÍVÁS: Rx6 BITEK KIÍRATÁSA
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,7				;RB7 BEOLVASÁSA
	CALL  PB7
	BTFSS PORTC,7				;RC7 BEOLVASÁSA
	CALL  PC7
	BTFSS PORTD,7				;RD7 BEOLVASÁSA
	CALL  PD7
	CALL  OUTPUT7				;SZUBRUTIN HÍVÁS: Rx7 BITEK KIÍRATÁSA	
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET

	GOTO  PROGRAM				;UGRÁS A "PROGRAM" RUTINHOZ
	GOTO  END_					;UGRÁS AZ "END_" RUTINHOZ


END_
    END