Swordfish has many built in libraries, one being "LCD.bas". This library allows seemingly easy control of LCD modules, and only requires a few declarations.

Note that the contrast resistor pot can be anything from 4.7K to 10K, and that the unused data lines on the LCD do not need to be tied to earth. Be sure to allow a small delay before sending data/commands to the LCD module on startup, as its microprocessor has to initialize as well. 150mS should be enough for most devices.

To make life even easier, you can solder pins to the LCD so that you can just 'insert' it into your breadboard.
One thing to remember about LCD modules is to give them ~100-200ms to power-up. They run through their own initialization, and if you were to send data to it immediately, nothing would be displayed.
Device = 18F4520 Clock = 20 // some LCD options... #option LCD_DATA = PORTD.4 // Assign the LCD connections #option LCD_EN = PORTD.3 // #option LCD_RS = PORTD.2 // // import LCD library... Include "LCD.bas" Include "convert.bas" Dim Variable As Word // Start Of Program... DelayMS(150) // Let the LCD warm up LCD.Cls // Clear the LCD screen LCD.WriteAt(1,1,"Hello World") // Send some text to the LCD Variable = 0 // Clear the "Variable" register While True Inc(Variable) // Increment the "Var1" register // Convert to a string, // and always display 5 characters LCD.WriteAt(2,1,Convert.DecToStr(Variable,5)) DelayMS(1000) // Delay for 1 second Wend
Example of how to use Swordfish's LCD module
Video tutorial on how to Mod an LCD for breadboards and use them