The LCD Panel
Originally we planned on using the Data Image CM2021S1LY-J3 2x20 LCD, however, we ran into problems using this display. The major issue was with the required logic input voltage. This display was powered by a +5V supply, which was not a problem, but the high logic inputs needed to be close to +5V also. This was a problem because our USB I/O board operated on a +3.3V logic level.
The LCD panel that we eventually used is the Emerging Display Technologies Corporation EW20400GLY display. This display provides 4 lines, with 20 characters per line. Most importantly though, the display will work with +3.3V logic levels, even though the display operates on +5V. The display is shown below in the following picture.

The controller for the LCD panel can be configured to operate with either a 4-bit or 8-bit interface. We chose to operate the display with the 8-bit interface, in order to keep the display operating as fast as possible. The LCD interface consisted of 16 pins. Eight of these were data pins, which operated as either inputs or outputs depending on the instruction. In order to slelect either read or write, the R/W pin was used, with write being active low. The register select (RS) pin specified whether or the input was an instruction or data. In order to latch the data onto the display, the enable (E) pin was raised and then lowered. Data is latched on the falling edge of E. Other input pins included Vin, GND, backlight anode and cathode, and contrast control.
The USB Interface

In order to interface the LCD panel to the PC via the USB, we used the DevaSys USBI2C I/O development board. This board provided us enough I/O pins to connect all of the LCD pins, and use the 8-bit parallel interface. An API was provided by DevaSys in order to communicate with the USBI2C I/O development board. This was utilized in order to communicate with the USB development baord, and ultimately to the LCD panel.
Bringing It All Together
The display was plugged into a proto-board, as was the cable coming from the USB development board. An additional board was developed which contains a +5V linear regulator to provide power to the LCD panel. Also on that board is a voltage divider for the contrast input and a current limiting resistor for the backlight voltage.
The 8 data pins of the LCD panel (D7..D0) were connected to the 8 port A pins (A7..A0) of the USB development board. Enable, R/W, and RS were connected to port B bits 2 through 0 (B2..B0), respectively. The proto-board provided a junction point for all cables and boards, where the I/O signals from the USB development board were routed to the correct pins on the LCD panel.