HD44780 Based LED Display: Scrolling Text False Start


New member
I have been experimenting with scrolling text on some HD44780 based LED displays of various sizes. The commands I talk about below are those for that device, not any particular PIC code.

I first clear the display and home the cursor sending a 01 command to the display. Then I change to One Line mode with a 48 command. A long text message is then sent to the display using the data mode in a loop to send all the characters. This message is 72 bytes long and should be going into LCD RAM locations 128 through 199.

At this point I have tried a number of commands to reliably reset the active window to the start of my message, but none of them seem to work for all the different displays I have tried this on. On some of the displays nothing works.

Then the text is scrolled using the Pan Right command: 24 in a loop that repeats it 136 times to display the complete message two times. The scrolling does work, but some times it starts at the beginning of the message and other times it starts at the 41st character. This action seems to be random.

As I stated above, I have tried inserting several different commands just before the scrolling routine but none of them have worked. These commands include repositioning the cursor to position 128, the start of the first line, homing the cursor (2), and adding a cursor right and a cursor left command after that. None of these measures seems to have any effect.

Does anybody know of a reliable way to have this scrolling message always start at it's beginning? If possible, I need a solution that works on all HD44780 based displays. I know that is a tall task and may need to use different approaches for different displays.

I know some are concerned about questions that are posted to multiple forums so I will state that I am posting this to several boards as I feel that it is a difficult problem and the more exposure it has, the better the chances of getting a good answer. I will post any working solution that I find to all the boards.
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.


New member
The parallel interface of LCDs necessitates simultaneous manipulation of many interface pins by the microcontroller in order to control the display. The following pins make up the interface: A register select (RS) pin that determines where data is written to in the LCD's memory