REFRESH_DATA	EQU	0x40
RSH_OUT		EQU	P2		; 4 bits are used
RSH_CLK		EQU	P1.1

; ...

RSH_MATRIX:
	MOV	R0,#REFRESH_DATA
RSH_NEXT_BYTE:
	MOV	A,@R0
	CLR	RSH_CLK
	MOV	RSH_OUT,A
	SETB	RSH_CLK
	SWAP	A
	CLR	RSH_CLK
	MOV	RSH_OUT,A
	SETB	RSH_CLK
	INC	R0
	CJNE	R0,#(REFRESH_DATA+20),RSH_NEXT_BYTE