Connecting 16x2 LCD to 8051
Assuming this is a generic Hitachi HD44780-compatible character LCD, since there is 8 bits parallel data, an RS, and an E strobe. That is most likely the type of hardware that your Multisim is trying to emulate.

You can find the HD44780 datasheet here: https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

Is the R/W control pin low? If R/W is high, data and commands will not be written into the controller. Leaving the R/W input unconnected is not OK; it should be connected to ground unless you specifically want to be able to read back command status and read data out of the display memory. Most HD44780 device drivers don't use this feature, so R/W is usually connected to ground.

During initialization, did you wait at least 40 msec after power rises above 2.7V before sending commands? (Some sources suggest 10 msec is enough, but as a "generic" controller it's perhaps better to play it safe.)

In the code that generates the E strobe (data is clocked in on the falling edge of the E clock), are you using the correct setup and hold times?


Enable pulse width (high level, E=1) 450 nsec min -- but you seem to be using Delay(150)
Write Data Setup time (before E=0) 195 nsec min -- but you seem to be using Delay(150)
Write Data Hold time (after E=0) 10 nsec min -- this Delay(150) should be enough
these are listed under AC Characteristics (2.7V to 4.5V), Bus Timing Characteristics, Write Operation, near the end of the datasheet.


Since you mention 8051, your microcontroller is probably relatively slow -- but are you sure you are allowing the required execution time between commands? See table 6 in the data sheet. Most commands need about 37 usec, the return home command needs over 1500 usec.

There are also some example command sequences shown in table 11.