[quote][/quote]use nibble mode, and connect only D4 to D7 for data to 4 GPIO's. See datasheet on entering nibble mode.
Then connect register select to another GPIO for control of sending either data or commands.
Then you can select which interfacing mode (motorola or intel) to select with the reset line going either high or low. The picture uses motorola mode, so you tie the R/W pin low for permanent write mode, and strobe data into the LCD with the enable signal using a sixth GPIO.
So you need six GPIO,s but can control these with simple logic. You also need to provide a LED (backlight) current limiting resistor, and a negative contrast voltage. (edit, you only need a negative contrast voltage for graphical LCD's not for text mode ones)
LCD's are also sold with an adapter for (most often) I2C, then you use no GPIO pins, only the two I2C lines.
Disadvantages of going that way:
Extra cost (especially if you need to make a consumer product)
Extra complexity (in the form a a controller board)
The need for an I2C driver.
Not controlling the LCD by your own, so less flexibility.
Not learning anything new (controlling the LCD yourself)
Tying yourself to a smaller solution base.
Incurring karma points for being lazy.