Just a question: Is this happening after the LCD is initialized? Because, up to some point of the initialization sequence the Busy bit is not operational... During the initialization you should do the first steps without looking at the busy bit (will not work anyway), just use timming routines... Take a look at my webiste, LCD 4 and 8 bits initialization sequence. http://www.ustr.net/lcd001.shtml Are you sure your LCD pin 3 (Vo) is at some contrast satisfying voltage level? Are you waiting more than 15ms after power on to start sending data to the LCD? Wagner Lipnharski UST Research Inc. - Orlando, Florida http://www.ustr.net <-- 8051 website "Eisermann, Phil [Ridg/CO]" wrote: > > Dwayne Reid wrote: > > 1) It should NOT matter what happens to the data lines so long as the E > > line is LO. Make sure that E is LO before changing anything. > > > > I *know* that the LCD ignores data while E is LO because I have 68hc11 > > boards that put the LCD on the data buss - and they all worked just fine! > > > > > well, I tried that this morning. All i did was change the data lines while > E was low (confirmed on scope). The order of operation was: > 1) change data lines to input > 2) bring RW high > 3) bring E high > 4) read data DB7-DB4 > 5) bring E low > 6) repeat 3-5 for reading DB3-DB0 > Note that E, RS, RW are all low at the start of the operation. > > The LCD remained blank, but data was sent continually back and forth. > > The version that I was able to get to work omitted step 1. > > I have another of the same display. I think I will wire that one up > and see if it behaves similarly.