;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	SPISR.ASM	MPB	Ver:1.0		14-9-05
;...............................................................
;
;	SPI Slave Receiver program
;	
;	Waits for BCD data sent from master and displays it
;	
;	
;	
;	
;	
;	
;	
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	PROCESSOR 16F877	; define MPU
	__CONFIG 0x3731		; XT clock (4MHz)

;	LABEL EQUATES	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	INCLUDE "P16F877.INC"	; Standard register labels 




; Initialise ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	ORG	0		; Place machine code 
	NOP			; Required for ICD mode

	BANKSEL	TRISD		
	CLRF	TRISD		; Display outputs
	CLRF	SSPSTAT		; Default clock timing

	BANKSEL	PORTD
	MOVLW	B'00000101'	; SPI slave mode, SS disabled
	MOVWF	SSPCON		; SPI clock = 1MHz
	

; MAIN LOOP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	

	BSF	SSPCON,SSPEN	; Enable SPI mode	
wait	BTFSS	PIR1,SSPIF	; wait for SPI interrupt
	GOTO	wait

	MOVF	SSPBUF,W	; get data
	MOVWF	PORTD		; and display
	BCF	PIR1,SSPIF	; clear interrupt flag
	GOTO	wait		; repeat main loop



	END 	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

