PIC to LCD screen connection


New member
HI there

I am working on a little monitoring project. I am using the PIC18F4550 micro as it supports 13 ADC and USB. Now I finished the A/D conversion and USB communication with the PC my data is finally displaying correctly on the PC GUI.
The problem is that I want to also display this information on a character LCD and i want the microcontroller to send the data directly to the LCD
I am new to LCD technology and seeking for some direction in whats the best way to communicate with a LCD.
I noticed that the Crystalfontz LCD use USB to feed the data, can someone send me some links or give a quick run through on how to configure a micro with the USB LCD.
For example is it a high or low speed USB transfer/ or is it a RS232 to USB.

Also how can u get the PIC to recognize the LCD, is there a driver provided for microcontrollers as well?
There is support for the PC "Virtual COM port" driver. But what about microcontrollers?

Thanks so much
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.

CF Tech

In general, you do not want to use a USB LCD with an embedded processor. You would have to implement at least part of the "USB Host" software stack in your microcontroller--not a simple task.

It would be a much better approach to use a serial LCD, or a regular character LCD.


New member
Character LCD
My PIC18 supports the control of a Hitachi HD44780 LCD using I/O pins .

  1. Those this mean I can control any Industry-standard HD44780 compatible controller LCD from crystalFontz?
  2. If I want to use a 4bit data interface mode would it be quick enough to support 4 sensor data (example RPM)

Serial LCD

  1. I am also in the decision of using a serial LCD. My PIC18F4550 also support TX and RX ,USART , therefore is this a true rs-232 ?
  2. Main problem is that I never programmed LCD before and I don’t know what connection should I use / which one is easier ?- serial or character since my PIC supports both what do u recommend for a beginner?

CF Tech

Either will be plenty fast. The LCD fluid can only support 4 to 10 updates per second.

If the connection is short < 6" I would use the 4-bit method, if it is longer, or at the end of a cable, then I would use the serial.


New member
How fast in FPS would a LCD run if I used a 4-5m parallel 8bit transfer?
Could it be doable or am I forced at 4-5 m to go serial
( wanted to keep the costs down)

CF Tech

I would not recommend 4-5m for parallel under any condition (FPS=0 :) ), maybe you could get it to work, but it is really not a reasonable approach.

Serial at 19200 baud worst case:

4 lines at 20 characters each, + 2 location bytes + 4 bytes overhead per packet = 104 bytes

19200 baud gives about 1920 bytes per second

104 b / 1920 c/s = 18 frames per second

but remember,the LCD fluid is much slower than that, no reason to update at more than about 10 frames per second. You can use 115200 for some of our modules--in which case the update rate can go up.