REFRESH_DATA	EQU	0x40
RSH_DAT		EQU	P1.0
RSH_CLK		EQU	P1.1
; ...

RSH_MATRIX:
	MOV	R0,#REFRESH_DATA
RSH_NEXT_BYTE:
	MOV	A,@R0
	MOV	R7,#8
RSH_NEXT_BIT:
	CLR	RSH_CLK	
	RRC	A
	MOV	RSH_DAT,C
	SETB	RSH_CLK	
	DJNZ	R7,RSH_NEXT_BIT
	INC	R0
	CJNE	R0,#(REFRESH_DATA+20),RSH_NEXT_BYTE