I am using 16x1 lcd interface with PIC.Internally it is 8x2 splited. I am facing the problem while scrolling 16 chrs on that display. I tried it with incrementing the DDRAm address. but I need to use command 18h pls help......... thanking u in advnce.
If your LCD does not support scrolling across all 16 characters with command 0x18 then you may need to implement your own scrolling routine that handles the fact that the characters from position 9 are on logical line 2 (i.e. addressed from 0x40).
I would think the easiest way of doing that is to keep a local scroll position counter and local buffer of all the characters. The send the first 8 to the first logical line and the second 8 to line 2.
Pic guru Myke Predko has a really good LCD reference here: http://www.myke.com/lcd.htm
Thank u Sir for guiding me. I have implemented my own scrolling routine. But my controller has to do other functions too, or rather it is busy with doing other functions.In that case I cann't keep the controller busy with evrytime updating DDRAM address & maintain count for the characters etc. That is why I want to use 0X18 command.Pls guide me. :-?
My guidance (and it may not be worth much in this case ;)) is to replace that 16x1 LCD with a 16x2 part.
That's what I did after getting fed up hacking code to handle the ridiculous addressing used in the16x1 LCD. I found a 16x2 LCD cheap on ebay that was the same physical size, and I not only is the coding easier, the extra line has been very handy.