First off, would like to express my thanks to this forum for imparting all this knowledge here. I've been ear-wigging on the sidelines for the past couple months, in which time have managed to glean a whole pile of much-needed information.
Name here is Peter/Pete, have just recently purchased PBP and in just a few days have so far breadboard'ed several LCD projects.. all working nicely, each one written for the PIC16F628A. From what I have learnt from the PBP manual, and from here, and from the data sheets so far, in order to use a LCD with a 16F684 means having to adjust other parameters, such as ANSEL, etc. I'm obviously not understanding something correctly because it's not working.
Could I trouble you to grok the code and possibly tell me where I'm going wrong, please?

Hopefully can one day contribute something back.
Meantime, top thanks once again.


; -----------------------------------------------------------

; Date: May 2010
; File name: lcd_test.pbp
; Compiler: PicBasic Pro V2.6
; Editor: MicroStudio V3.0.0.5
; Processor: PIC16F684
; Oscillator: External 4MHz
; LCD: 16 characters X 2 lines

; -----------------------------------------------------------

@ DEVICE PWRT_ON ; Set configuration fuses
@ Device BOD_ON
@ Device WDT_ON
@ Device MCLR_OFF
@ Device XT_OSC

; LCD-to-PIC configuration:
DEFINE LCD_DREG PortC ; Utilise Port C for all the data lines
DEFINE LCD_DBIT 0 ; 0 = 4-bit data; 4 = 8-bit data
; LCD pins D4 ~ D7 to PIC Port C.3 ~ C.0 (pins 7 ~ 10)
DEFINE LCD_BITS 4 ; Set bus size (4 = 4-bit data; 8 = 8-bit data)
DEFINE LCD_RSREG PortC ; Put the R/S Register on Port C
DEFINE LCD_RSBIT 5 ; LCD R/S pin to PIC Port C.5 (pin 5)
DEFINE LCD_EREG PortC ; Put the EnABLE Register on Port C
DEFINE LCD_EBIT 4 ; LCD En pin to PIC Port C.4 (pin 6)
DEFINE LCD_LINES 2 ; Set number of LCD lines (1 ~ 4)
DEFINE LCD_COMMANDUS 2000 ; Set 2-millisecond command period
DEFINE LCD_DATAUS 50 ; Set data delay period

CMCON0 = %00000111 ; Disable comparators
ANSEL = %00000111 ; Disable A/D convertors

TrisA = %000000 : Set Port direction Registers
TrisC = %000000
PortA = %000000
PortC = %000000

PAUSE 1000

LCDOUT $FE, 1 ; Initialise and clear the display

start:
LCDOUT $FE, $80, "Line 1" ; $80 = First line
LCDOUT $FE, $C0, "Line 2" ; $C0 = Second line
GOTO start

END