Mike: I did as you suggested but still the display will not light. All that I do is remove the goto BUSY_FLAG? and it works. I must have looked over this code 100 times, run it through the simulator 50 times and it still won't cooperate. I do appreciate your suggestions and I will leave the code as you explained. I looked at the display timing diagram and it confirms it. Thanks Mike Keitz wrote: > On Mon, 25 Oct 1999 22:08:22 -0400 John Considine > writes: > > I am having a problem when I try to check the busy flag coming from > > the > > LCD display (BUSY_FLAG? subroutine shown below). It is always busy > > The PIC must read the data from the LCD while E is high. The LCD returns > the data pins to tri-state as soon as E goes low. Your program just > pulses E, the data has gone way by the time it reads it. Rearrange to > something like: > > bsf PORTA,E > movfw PORTB > bcf PORTB,E > > Not that you're doing it here, but another common mistake is to hold E > high and read the data repeatedly. The LCD will not change the data > output while E is high. To find out when it becomes not busy you need to > pulse E for each read. > ___________________________________________________________________ > Get the Internet just the way you want it. > Free software, free e-mail, and free Internet access for a month! > Try Juno Web: http://dl.www.juno.com/dynoget/tagj.