PIC Projects
TFT Clock and Thermometer
WiFi, Ethernet
Doorbell with SD / EEPROM
SD FAT16/32 for .bmp
LCD TFT Egg Timer
LCD TFT Oscilloscope
SD Talking Clock
SD Sound Recorder,
    FAT32 wav Player
LED Thermometer
LED Egg Timer
LCD Egg Timer

Frequency Counters
100KHz For PC
1MHz For PC
8 Digits LED 50 MHz
Scope Screen Display
LCD Module 10MHz
6MHz for Android
USB PIC18F2550
USB TFT display BMP
USB DS18B20 Sensor
USB Thermometer
USB Counter
USB Meter
USB Oscilloscope
USB Input-Output
USB 16x2 LCD

COM & LPT Ports
MCP3201 on LPT
Serial TFT Text
Serial Inputs Outputs
Serial Port LCD
Analogue Signal to LPT
MCP3201 on Serial Port
Serial Thermometer
Analogue Signal to Serial
LCD Display on LPT
Serial Thermostat

Water Softener
HP Stream 7 docking
3.7V to 5V
Solar Charger

Infrared Decoder
PIC Music

Code Lock
Code Lock with LCD
HOME MOBILE Technical Tips


A project of connecting LCD display module to LPT printer port with multi lines and adjustable characters number. Included a VB6 software, Visual Studio 2005 VB and a circuit diagram. There are several makes of this module that are interchangeable, the one I used is UC-16207. The LCD module has a 14 way connector, 8 pins are used for data, 2 for supply, register select(RS), read/write, enable (E) and contrast adj. The R/W input must be connected to earth to make sure that data lines are in input mode. The VB application has only basic functions, it can be changed to interface the display for a variety of inputs.
The LCD module requires a delay of 2 ms or longer for some of the commands and clock (Enable) of 10 us or longer. By loop counting during Timer1 of 100 ms interval the speed of the cpu can be assessed and used to set micro-second time base.
The io.dll file has to be in the same folder as the exe file.
You can read more about LPT interface in http://www.beyondlogic.org/spp/parallel.htm

The download includes a freeware DLL (io.dll) which can be updated from http://www.geekhideout.com/iodll.shtml
Keep the .exe file and .dll in the same folder. You are free to use the circuit diagram and the VB software with no limitations.

PC application.

Circuit Description
See also Technical Tips

5 volt supply can be an external power supply, using the hosting computer 5V is much preferred because variation between the computer 5V and the external 5V can lead to undesirable currents through the data lines. 5 volt supply is available at a USB port or the 4 way peripherals connector from the internal power supply unit.
Module can work with voltage range of 3.3 to 5 volts. Below 5 V the module doesn't initiate on power up so the VB extra instructions have to be enabled.
20K trimmer is needed to adjust the contrast voltage which vary with different batches of LCD.

Pins 7 to 14 of the LCD are data inputs. Pin 6 is clock input, enables LCD module to read the data.
Pin 4 is Register Select input, it is used for 16 bits instruction.


Comments and questions

Copy the number from the picture It stops net-robots from adding comments.

09.10.2016 - 21:47
Name: Moty
Comment: Hi Jim, check that your BIOS are set to ports 378h-37fh and LPT is enabled, see the link above for more information. Turn the 20K pot until you get light grey rectangles.

09.10.2016 - 03:54
Name: jim
Comment: i got questions, it doesnt work on my unit, windows xp, vb6 is installed, the .exe program is opening but it doesn't show what i type at the program, please send me some help

18.04.2016 - 01:05
Name: elvis
Comment: project OK

07.07.2015 - 17:52
Name: Moty
Comment: Hi Alexander. for 20x4 you have to change the VB6 code.

07.07.2015 - 05:02
Name: Alexander
Comment: How if we would like to use 20x4 LCD?

31.05.2015 - 16:02
Name: Hans Andersson
Comment: I have not build it yet. But I will try. I seems to work fine.

17.10.2014 - 23:22
Name: kanishka
Comment: great projet

29.03.2013 - 12:20
Name: steve
Comment: Very Good Project

21.03.2013 - 14:38
Comment: it's great!