;******************************************************************************
; 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

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

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
	GOTO  PB0					;SZUBRUTIN HÍVÁS: PORTB_0 FORDÍTÁS, CPU COM CÍMZÉS 1
P1					
	BTFSS PORTC,0				;RC0 BEOLVASÁSA
	GOTO  PC0
P2
	BTFSS PORTD,0				;RD0 BEOLVASÁSA
	GOTO  PD0
P3
	GOTO  OUTPUT0
P4		
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,1				;RB1 BEOLVASÁSA
	GOTO  PB1
P5
	BTFSS PORTC,1				;RC1 BEOLVASÁSA
	GOTO  PC1
P6
	BTFSS PORTD,1				;RD1 BEOLVASÁSA
	GOTO  PD1
P7
	GOTO  OUTPUT1				;SZUBRUTIN HÍVÁS: Rx1 BITEK KIÍRATÁSA
P8				
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,2				;RB2 BEOLVASÁSA
	GOTO  PB2
P9
	BTFSS PORTC,2				;RC2 BEOLVASÁSA
	GOTO  PC2
P10
	BTFSS PORTD,2				;RD2 BEOLVASÁSA
	GOTO  PD2
P11
	GOTO  OUTPUT2				;SZUBRUTIN HÍVÁS: Rx2 BITEK KIÍRATÁSA
P12				
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,3				;RB3 BEOLVASÁSA
	GOTO  PB3
P13
	BTFSS PORTC,3				;RC3 BEOLVASÁSA
	GOTO  PC3
P14
	BTFSS PORTD,3				;RD3 BEOLVASÁSA
	GOTO  PD3
P15
	GOTO  OUTPUT3				;SZUBRUTIN HÍVÁS: Rx3 BITEK KIÍRATÁSA
P16				
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,4				;RB4 BEOLVASÁSA
	GOTO  PB4
P17
	BTFSS PORTC,4				;RC4 BEOLVASÁSA
	GOTO  PC4
P18
	BTFSS PORTD,4				;RD4 BEOLVASÁSA
	GOTO  PD4
P19
	GOTO  OUTPUT4				;SZUBRUTIN HÍVÁS: Rx4 BITEK KIÍRATÁSA
P20				
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,5				;RB5 BEOLVASÁSA
	GOTO  PB5
P21
	BTFSS PORTC,5				;RC5 BEOLVASÁSA
	GOTO  PC5
P22
	BTFSS PORTD,5				;RD5 BEOLVASÁSA
	GOTO  PD5
P23
	GOTO  OUTPUT5				;SZUBRUTIN HÍVÁS: Rx5 BITEK KIÍRATÁSA
P24				
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,6				;RB6 BEOLVASÁSA
	GOTO  PB6
P25
	BTFSS PORTC,6				;RC6 BEOLVASÁSA
	GOTO  PC6
P26
	BTFSS PORTD,6				;RD6 BEOLVASÁSA
	GOTO  PD6
P27
	GOTO  OUTPUT6				;SZUBRUTIN HÍVÁS: Rx6 BITEK KIÍRATÁSA
P28
	CALL  INPUT					;SZUBRUTIN HÍVÁS: PORTB, PORTC, PORTD MIND BEMENET
	BTFSS PORTB,7				;RB7 BEOLVASÁSA
	GOTO  PB7
P29
	BTFSS PORTC,7				;RC7 BEOLVASÁSA
	GOTO  PC7
P30
	BTFSS PORTD,7				;RD7 BEOLVASÁSA
	GOTO  PD7
P31
	GOTO  OUTPUT7				;SZUBRUTIN HÍVÁS: Rx7 BITEK KIÍRATÁSA
P32				
	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

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
	CLRW
	GOTO  P1

PB1
	COMF  PORTB_1,1				;PORTB_1 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'2'
	MOVWF PORTA
	CLRW
	GOTO  P5

PB2
	COMF  PORTB_2,1				;PORTB_2 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'3'
	MOVWF PORTA
	CLRW
	GOTO  P9

PB3
	COMF  PORTB_3,1				;PORTB_3 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'4'
	MOVWF PORTA
	CLRW
	GOTO P13

PB4
	COMF  PORTB_4,1				;PORTB_4 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'5'
	MOVWF PORTA
	CLRW  
	GOTO  P17

PB5
	COMF  PORTB_5,1				;PORTB_5 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'6'
	MOVWF PORTA
	CLRW
	GOTO  P21

PB6
	COMF  PORTB_6,1				;PORTB_6 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'7'
	MOVWF PORTA
	CLRW
	GOTO  P25

PB7
	COMF  PORTB_7,1				;PORTB_7 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'8'
	MOVWF PORTA
	CLRW
	GOTO  P29

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
	CLRW
	GOTO  P2

PC1
	COMF  PORTC_1,1				;PORTC_1 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'10'
	MOVWF PORTA
	CLRW
	GOTO  P6

PC2
	COMF  PORTC_2,1				;PORTC_2 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'11'
	MOVWF PORTA
	CLRW
	GOTO  P10

PC3
	COMF  PORTC_3,1				;PORTC_3 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'12'
	MOVWF PORTA
	CLRW
	GOTO  P14

PC4
	COMF  PORTC_4,1				;PORTC_4 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'13'
	MOVWF PORTA
	CLRW
	GOTO  P18

PC5
	COMF  PORTC_5,1				;PORTC_5 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'14'
	MOVWF PORTA
	CLRW
	GOTO  P22

PC6
	COMF  PORTC_6,1				;PORTC_6 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'15'
	MOVWF PORTA
	CLRW
	GOTO  P26

PC7
	COMF  PORTC_7,1				;PORTC_7 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'0'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	CLRW
	GOTO  P30

PD0
	COMF  PORTD_0,1				;PORTD_0 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'1'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	GOTO  P3

PD1
	COMF  PORTD_1,1				;PORTD_1 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'2'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	CLRW
	GOTO  P7

PD2
	COMF  PORTD_2,1				;PORTD_2 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'3'
	MOVWF PORTA
	MOVLW D'16'
	CLRW
	GOTO  P11

PD3
	COMF  PORTD_3,1				;PORTD_3 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'4'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	CLRW
	GOTO  P15

PD4
	COMF  PORTD_4,1				;PORTD_4 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'5'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	CLRW
	GOTO P19

PD5
	COMF  PORTD_5,1				;PORTD_5 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'6'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	CLRW
	GOTO  P23

PD6
	COMF  PORTD_6,1				;PORTD_6 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'7'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	CLRW
	GOTO  P27

PD7
	COMF  PORTD_7,1				;PORTD_7 VÁLTOZÓ FORDÍTÁSA
	MOVLW D'8'
	MOVWF PORTA
	MOVLW D'16'
	MOVWF PORTE
	CLRW
	GOTO  P31

OUTPUT0							;LINE 259, ADDR. 102
	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
	CLRW
	GOTO  P4

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
	CLRW
	GOTO  P8

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
	CLRW
	GOTO  P12

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
	CLRW
	GOTO  P16

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
	CLRW
	GOTO  P20

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
	CLRW
	GOTO  P24

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
	CLRW
	GOTO  P28

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
	CLRW
	GOTO  P32

END_
    END