im trying to write an S on the screen,pause for 5 secs, clearscreen, repeat. im
starting simple so i can build from it. i have no problems doing instuctional commands but everytime i try to write some ascii, the character is blank. the lcd commands does what it is supposed, it clears the screen, goesto line 1, trys to write the S, waits 5 secs then repeats. so all good. i am making the RS pin high
when i write the ascii. so my question is do i need to initialize the character register before it will work? and how do i do it. i dont understand how to read some of the data sheets that say CG RAM ADDRESS SET and DD RAM ADDRESS SET. i know there are alot of pauses, but thats because im want it to run slow for now. my board has pusbutton pwer so thats why there is the pwr LOCK ON.just ignore that part.

heres my code so far:


lcde var PORTC.1
lcdrs var PORTC.0
lcd7 var PORTA.0
lcd6 var PORTA.1
lcd5 var PORTA.2
lcd4 var PORTB.3 '<-the reason why this so long

TRISA=%011000 'PORT A
TRISB=%11110011 'PORT B
TRISC=%11100000 'PORT C
pause 500 'need to hold pwr butn for .5 secs
PORTA=%100000
PORTB=%00000000
PORTC=%00010000 'PWR LOCK-ON
pause 500 'give lcd time to power up

Lcde=0 'start with lcd enable low


Gosub lcdinit 'initialize the lcd
'--------------------------------------------------------------


MAIN: 'all i want to do is display an S

lcdrS = 1 'Data mode
pause 100
'--------------------
lcd7 = 0
lcd6 = 1
lcd5 = 0
lcd4 = 1
gosub lcdtog 'ascii "S"
lcd7 = 0
lcd6 = 0
lcd5 = 1
lcd4 = 1
gosub lcdtog
'---------------------



pause 5000
gosub clearlcd
Goto MAIN








'---------------------------------------------------------------------
' subroutine to toggle the lcd enable line
lcdtog:
pause 50
High Lcde 'set lcd enable line high
pause 1
Low Lcde 'set lcd enable line low
pause 50
Return

'-----------------------------------------------------------------
clearlcd:
lcdrS = 0 'instruction mode
'--------------------
lcd7 = 0
lcd6 = 0
lcd5 = 0
lcd4 = 0
gosub lcdtog 'clearscreen
lcd7 = 0
lcd6 = 0
lcd5 = 0
lcd4 = 1
gosub lcdtog
'---------------------

'--------------------
lcd7 = 0
lcd6 = 0
lcd5 = 0
lcd4 = 0
gosub lcdtog 'increment text mode
lcd7 = 0
lcd6 = 0
lcd5 = 1
lcd4 = 0
gosub lcdtog
'---------------------
return
'--------------------------------------------------------------


'--------------------------------------------------------------

lcdinit:
'-----------------------
Pause 15 'wait at least 15ms
lcdrS = 0 'instruction mode

pause 50
lcd7 = 0
lcd6 = 0
lcd5 = 1
lcd4 = 0 'initialize the lcd
Gosub lcdtog 'Toggle E line
lcd7 = 0
lcd6 = 0
lcd5 = 1
lcd4 = 0 'initialize the lcd
Gosub lcdtog 'Toggle E line
lcd7 = 0
lcd6 = 0
lcd5 = 1
lcd4 = 0 'initialize the lcd
Gosub lcdtog 'Toggle E line
lcd7 = 0
lcd6 = 0
lcd5 = 1
lcd4 = 0
Gosub lcdtog
lcd7 = 1
lcd6 = 0
lcd5 = 0
lcd4 = 0
Gosub lcdtog
'--------------------



'--------------------
lcd7 = 0
lcd6 = 0
lcd5 = 0
lcd4 = 0
Gosub lcdtog 'display on, cursor on, blink on
lcd7 = 1
lcd6 = 1
lcd5 = 1
lcd4 = 1
Gosub lcdtog
'--------------------

'--------------------
lcd7 = 0
lcd6 = 0
lcd5 = 0
lcd4 = 0
gosub lcdtog 'clearscreen
lcd7 = 0
lcd6 = 0
lcd5 = 0
lcd4 = 1
gosub lcdtog
'---------------------

'--------------------
lcd7 = 0
lcd6 = 0
lcd5 = 0
lcd4 = 0
gosub lcdtog 'increment text mode
lcd7 = 0
lcd6 = 0
lcd5 = 1
lcd4 = 0
gosub lcdtog
'---------------------


Return