Hi,

Just for an update, let me paste the code I use currently to make these kind of display working.

Code:
' Code lines to be adapted according to 4 or 8 bits mode are marked " '// "

' LCD circuitry
'23,24,25,26,40 - Vdd (+5V)
'27,37,38 - Vss (GND)
'35 DB0   - PORTC.0
'34 DB1   - PORTC.1
'33 DB3   - PORTC.2
'32 DB4   - PORTC.3
'31 DB4   - PORTC.4
'30 DB5   - PORTC.5
'29 DB6   - PORTC.6
'28 DB7   - PORTC.7
'39 RS    - PORTB.5
'36 E     - PORTB.4

'-------------------------------------------------------------------------------
' Fuses
@ DEVICE PIC16F690,FCMEN_OFF
@ DEVICE PIC16F690,IESO_OFF
@ DEVICE PIC16F690,BOD_OFF
@ DEVICE PIC16F690,CPD_OFF
@ DEVICE PIC16F690,PROTECT_OFF
@ DEVICE PIC16F690,MCLR_OFF
@ DEVICE PIC16F690,PWRT_OFF
@ DEVICE PIC16F690,WDT_OFF
@ DEVICE PIC16F690,INTRC_OSC_NOCLKOUT

'-------------------------------------------------------------------------------
' Registers   76543210
OPTION_REG = %10000000 'PORT A&B Pull-Ups disabled (look WPUA & WPUB)
ANSEL      = %00000000 'Disable analog inputs Channels 0 to 7
ANSELH     = %00000000 'Disable analog inputs Channels 8 to 11
ADCON0     = %00000000 'A/D Module is OFF
CM1CON0    = %00000000 'Comparator1 Module is OFF
CM2CON0    = %00000000 'Comparator2 Module is OFF
INTCON     = %00000000 'INTerrupts CONtrol
TRISA      = %00000000 'Set Input/Output (0 to 5)
PORTA      = %00000000 'Ports High/Low (0 to 5)
TRISB      = %00000000 'Set Input/Output (4 to 7)
PORTB      = %00000000 'Ports High/Low (4 to 7)
TRISC      = %00000000 'Set Input/Output (0 to 7)
PORTC      = %00000000 'Ports High/Low (0 to 7) - 8 bits
'//PORTC      = %00001111 'Ports High/Low (0 to 7) - 4 bits

'-------------------------------------------------------------------------------
' Defines
DEFINE LCD_DREG PORTC   'LCD data port 
DEFINE LCD_DBIT 0       'LCD data starting bit 0(8bits)
'//DEFINE LCD_DBIT 4       'LCD data starting bit (4 bits)
DEFINE LCD_RSREG PORTB  'LCD register select port
DEFINE LCD_RSBIT 5      'LCD register select bit
DEFINE LCD_EREG PORTB   'LCD enable port
DEFINE LCD_EBIT 4       'LCD enable bit
DEFINE LCD_BITS 8       'LCD bus size 8 bits
'//DEFINE LCD_BITS 4       'LCD bus size 4 bits
DEFINE LCD_LINES 2      'Number lines on LCD

'-------------------------------------------------------------------------------
' Variables
Contrast        var byte
Contrastcommand var byte

'-------------------------------------------------------------------------------
' Init display

' COG Mandatory settings
pause 1000      'Time to settle Vdd (THIS IS VERY IMPORTANT!!!)
lcdout $FE, $39 'Function Set: 8 bits bus mode
'//lcdout $FE, $29 'Function Set: 4 bits bus mode
lcdout $FE, $1C 'Bias set
lcdout $FE, $52 'Power control + Contrast (HiByte)
lcdout $FE, $69 'Follower control
Lcdout $FE, $74 'Contrast (LowByte)

' COG Optional settings
'lcdout $FE, $38 'Function Set: switch back to instruction table 0
'lcdout $FE, $0F 'Display ON/OFF
'Lcdout $FE, $01 'Clear display
'Lcdout $FE, $06 'Entry Mode Set: cursor auto-increment

'lcdout $FE, $0F '%00001111 - Display ON, Cursor ON, Blink ON
'lcdout $FE, $0C '%00001100 - Display ON, Cursor OFF, Blink OFF

'-------------------------------------------------------------------------------
' Program
MAIN:
lcdout $FE, $70
LCDOUT $FE,1,"2 Lines Display",$FE,$C0,"EA DOGM-162L-A"
pause 1500
LCDout $FE,1, "contrast = ", $FE,$C0,"Hello Gerben ;-)"
For contrast = 0 to 15
    contrastcommand = $70 + contrast
    LCDout $FE, contrastcommand
    pause 10
    LCDout $FE,$8B, DEC2 contrast
    pause 200
Next
pause 1500

goto main:
end