Nice effort. However there seems to be no inter-digit blanking thereby giving the display a washed out appearance.

I suggest you modify this routine to create the blanking
Code:
DELAY		MOVWF PORTB
		DECFSZ	DEL,1
		GOTO	$-.1
		MOVLW 0FFH
		MOVWF PORTB
		CALL CLOCK
		RETURN
and remember to turn PORTB back to 0FFH to be able to read your keys

Cheers
Jerson