	LIST P=18LF46K22
	#INCLUDE	<P18LF46K22.INC>
	CONFIG	PLLCFG		= OFF
	config	FOSC		= HSMP
	CONFIG	PRICLKEN	= ON
	CONFIG	FCMEN		= OFF
	CONFIG	IESO		= OFF
	CONFIG	PWRTEN		= OFF
	CONFIG	WDTPS		= 32768
	CONFIG	BOREN		= OFF
	CONFIG	WDTEN		= OFF
	CONFIG	PBADEN		= OFF
	CONFIG	MCLRE		= EXTMCLR
	CONFIG	STVREN		= ON
	CONFIG	LVP			= OFF
	CONFIG	XINST		= OFF
	CONFIG	DEBUG		= OFF
	CBLOCK 0X000
	VALT1, LOOP1, LOOP2, SPIDATA
	ENDC
	
	ORG	0000H
	GOTO	START	

START
	MOVLB	0XF
	CLRF	PORTB
	CLRF	LATB
	MOVLW	B'00000000'
	MOVWF	TRISB
	CLRF	ANSELB
	CLRF	PORTC
	CLRF	LATC
	MOVLW	B'00010000'
	MOVWF	TRISC
	CLRF	ANSELC
	CLRF	PORTD
	CLRF	LATD
	MOVLW	B'00000010'
	MOVWF	TRISD
	CLRF	ANSELD
	BSF		LATD,7 ;ECS
	BSF		LATD,6 ;EHOLD
	CLRF	PORTA
	CLRF	LATA
	MOVLW	B'00000000'
	MOVWF	TRISA
	CLRF	ANSELA
	CLRF	PORTE
	CLRF	LATE
	MOVLW	B'00001000'
	MOVWF	TRISE
	CLRF	ANSELE

	CLRF	PIE1
	CLRF	PIE3
	CLRF	INTCON
	CLRF	SSP2CON1
	BCF		PMD1,MSSP2MD
	MOVLW	B'00100001' ;0010XXXX
	MOVWF	SSP2CON1
	CLRF	SSP2STAT
	MOVLW	B'01000000'
	MOVWF	SSP2STAT
	CALL	DELAY
	GOTO	PROGRAM

PROGRAM

	CALL	DELAY
	BCF		LATD,7 ;FLASH_CS
	MOVLW	B'00000011';OLVASÁS
	CALL	SPIW
	MOVLW	B'00000000';CÍM
	CALL	SPIW
	MOVLW	B'00000000';CÍM
	CALL	SPIW
	MOVLW	B'00000010';CÍM
	CALL	SPIW
;	GOTO	GYORSOLV
	CALL	SPIR
	MOVFF	SPIDATA,LATB; VÁLASZ A PORTB-RE
	BSF		LATD,7; FLASH_CS
	GOTO	STOP

GYORSOLV

	CALL	SPIR
	MOVFF	SPIDATA,LATB
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	GOTO	GYORSOLV


DELAY
	MOVLW	D'255' ;20
	MOVWF	LOOP1
OUTER
	MOVLW	D'255' ;60
	MOVWF	LOOP2
INNER

	DECFSZ	LOOP2,F
	GOTO	INNER
	DECFSZ	LOOP1,F
	GOTO	OUTER
	RETURN

STOP

	NOP
	GOTO	STOP

SPIW

	BCF		PIR3,SSP2IF
	MOVWF	SSP2BUF
SPILOOP
	BTFSS	SSP2STAT,BF
	GOTO	SPILOOP
	MOVF	SSP2BUF,W
	MOVWF	SPIDATA
	BCF		SSP2CON1,WCOL
	RETURN

SPIR

	BCF		PIR3,SSP2IF
	MOVLW	B'00000000'
	MOVWF	SSP2BUF
SPILOOP2
	BTFSS	SSP2STAT,BF
	GOTO	SPILOOP2
	MOVF	SSP2BUF,W
	MOVWF	SPIDATA
	BCF		SSP2CON1,WCOL
	RETURN


END