SDI		equ	P1.0
CLK		equ	P1.1
CSEL		equ	P1.2

		org	0000h

main:		setb	SDI
		setb	CLK
		setb	CSEL

		mov	R0, #11100000B	;Set display timing (number of digits) = 16;
		mov	R1, #00001111B
		call	two_byte
		
		mov	R0, #11100100B	;Set display dimming (brightness) to 239/255
		mov	R1, #11101111B
		call	two_byte

		mov	R1, #11101001B  ;Call test function - all dots on
		call	one_byte

		sjmp	$


two_byte:	clr	CSEL
		nop
		mov	A, R0
		call	vfd_shout
		nop
		nop
one_byte:	clr	CSEL
		nop
		mov	A, R1
		call	vfd_shout
		nop
		setb	CSEL
		ret

vfd_shout:	mov	R7, #8
		nop
sh_loop:	clr	CLK
		rrc	A
		mov	SDI, C
		setb	CLK
		djnz	R7, sh_loop
		ret
		end