
;this code is working for the AT89C51ED2 but not the AT89C51RD2.

	mov SPCON,#10010110b	; Fclk Periph/128, Master Mode, SPI Mode 3
;	mov SPCON,#10110101b	; same as above except Fclk Periph/64

	orl SPCON,#40h		; start spi
	mov	r7,#0		; start data @ 00h          

loop:             		
	mov SPI_Temp,r7		;
	lcall	SendSPI		;	
	lcall	Delay1mS

	inc	r7		;send 0h - 0FFh to SPI
	mov	a,r7
	jnz	loop

	xrl SPCON,#40h		; disable spi

stop:
	sjmp	stop
;
;send SPI data from SPI_Temp, returns read SPI data in SPI_Temp
SendSPI:
	clr	P1.0		;trigger for Logic Analyzer
	mov SPDAT,SPI_Temp	;transmit SPI Data

WaitSPI:
	mov a,SPSTA
	jnb acc.7,WaitSPI	;wait for TX complete before reading

	mov SPI_Temp,SPDAT	;read SPI Data
	setb	P1.0		;trigger for Logic Analyzer
	ret