1. Using a time Delay Method
The delay required between issuing each character to the LCD is about 5-10ms (it's simply known as DELAY). When programming an LCD, a long delay is also needed for the power-up process, (it's called long delay LDELAY). For the LCD input to be enabled, the short delay is required to make the En signal wide enough.The data is sent in nibbles in 4-bit mode. The higher nibble is sent first, and then the lower nibble. In order to enable the 4-bit mode of LCD, the follow special sequence of initialization below was used. This is also known as special reset sequence of LCD. The special reset sequence is as follows:
The busy flag will only be active after the above reset sequence is completed. The busy flag is not normally used in 4-bit mode; instead I had used a certain amount of delay usually within the range from 300 to 600us or can also write some code for reading two nibbles from the LCD. This delay might vary depending on the LCD used and crystal frequency on which LCD controller is running, but 400us usually works perfectly.
2. Using Busy Flag Method
The Data line D7 is the busy flag, and can be read when R/W=1 and RS=0. When D7 is high i.e. (busy flag =1), the LCD is busy dealing with the internal operations and will not acknowledge any new information. When D7=0, the LCD is ready to receive new information.