Have you wired the LCD correctly to your PIC?

Check out the code below:

Code:
' Program SER_LCD.BAS
' ***********************************************************************
' Simple Serial LCD Controller
' ***********************************************************************

	Include "Modedefs.bas"
        
	DEFINE OSC		   4		' Set the Xtal frequency to 4mHz

' ** Declare LCDOUT Defines **

	DEFINE	LCD_DREG	PortB			' Set Data to PortB
	DEFINE 	LCD_DBIT	0			' Set starting Data to Bit0
	DEFINE 	LCD_RSREG     	PortA			' Set Register Select to PortA
	DEFINE 	LCD_RSBIT       2			' Set RS line to PORTA.2
	DEFINE 	LCD_EREG	PortA			' Set Enable to PortA
	DEFINE 	LCD_EBIT  	3			' Set Enable line to PortA.3
	DEFINE 	LCD_BITS	8			' Set for 8 bit Bus
	DEFINE 	LCD_LINES	2			' Set number of lines to 2

' ** Define LCD Control Constants **

	I		Con	254			' Control Byte
	Clr		Con	1			' Clear the display
	Line1		Con	128			' Point to beginning of line 1
	Line2		Con	192			' Point to beginning of line 2
	Line3		Con	148			' Point to beginning of line 3
	Line4		Con	212			' Point to beginning of line 4
	Cgram		Con	64			' Point to Cgram within LCD
	Shift_L		Con	24			' Shift display left
	Shift_R		Con	28			' Shift display right

' ** Declare Variables **

	SO		Var	PortA.0			' Serial In Inverted
	VDD		Var	PortA.1			' LCD VDD pin
	SO2		Var	PortA.4			' Serial In True
	P_Test 	Var	PortB.4				' Pin for polarity setting
	Rcvbyte	Var	Byte				' The byte received 

Main:
	Low VDD						' Turn Off LCD
	Pause 	500					' Wait for Pic to Initialise
	High VDD					' Turn On LCD
	Pause 50					' Wait for LCD to Initialize 

' ** Check for Polarity Setting **

	TrisB=255					' Set PortB to Input
	If P_Test=1 then Goto True_Pol			' PortB.4 HI then True Polarity
	If P_Test=0 then Goto Inv_Pol			' PortB.4 LO then Inverted Polarity
			
	Goto Main					' Just In case it Missed the settings

 
' ** Receive characters serially with True polarity **

True_Pol:
	Gosub Clr_It					' Initialize the LCD	
	Lcdout I,Line2," T9600 Baud OK!"		' Print message			

Start_T9600:
	Serin SO,T9600,Rcvbyte				' Get Serial Data in
	Lcdout Rcvbyte					' Send send straight out to LCD
	Goto Start_T9600				' Loop back forever

' ** Receive characters serially with Inverted polarity **

Inv_Pol:
	Gosub Clr_It					' Initialize the LCD	
	Lcdout I,Line2," N9600 Baud OK!"		' Print message			

Start_N9600:
	Serin SO,N9600,Rcvbyte				' Get Serial Data in
	Lcdout Rcvbyte					' Send straight out to LCD
	Goto Start_N9600				' Loop back forever

' Initialize LCD ready to print
Clr_It:
	High	VDD				' Switch On LCD VDD
	TrisB=0					' Set Port to Output
	Pause 	100				' Wait for LCD to Initialise
	Lcdout I,Clr:Pause 30			' Clear the LCD	
	Lcdout I,Line1," LCD Serializer"
	Return