Adding a display to your microcontroller project
Microcontroller projects are extremely popular and a lot of fun! For a small amount of money you can buy a board
with more computing power than the astronauts had going to the Moon, and then program it to do whatever you want.
The supply of LED indicators, actuators, sensors, and miscellaneous peripheral devices is better than ever, but my
favorite is the visual display. These range from 7-segment numeric type, to multi-line alphanumeric, to
high-resolution color TFT like you would see on a smart phone. I put some questions to Curt Lagerstam with
Newhaven Display about what I thought were the main issues in successfully incorporating a display into your
What things should be considered to choose the best display?
This really depends on your end application. We are seeing displays in more and more different products these days
in all markets, from industrial, medical, consumer products, etc. The most important items to decide on are viewing
area size, if you want to display just characters or monochrome or color graphics, what color text and backlight
looks best in the end product, and optical characteristics such as viewing angle, brightness, and contrast ratio.
What type of wiring bus is needed between the microcontroller or computer board and one of your displays?
Most LCD displays require the communication lines (described below) along with an analog DC variable supply to
adjust the display contrast, and one for the backlight brightness. These supplies can be static, or controlled
with a digital or analog potentiometer, or with the microcontroller PWM (pulse-width modulation).
What type of communication protocol is used?
Most displays use the “standard” 4-bit or 8-bit parallel interface. This requires the 4 or 8 bits for data
transfer, plus control lines for Data/Instruction, Read/Write, and Enable(Latch). Some displays use I2C, SPI, or
Synchronous Serial interface instead of parallel. TFT displays can come with or without a controller.
The controller is usually 8-bit or 16-bit parallel interface; TFTs without the controller
use 24-bit RGB interface.
On some discussion forums I’ve seen people having trouble with sharing a common power supply between the
computer board and the display. What’s the best way to power the display to avoid problems?
I haven’t seen this issue, as long as the display voltages remain stable and is initialized properly,
there shouldn’t be a problem.
What would be an example of a software command to send a text or numeric message to the display?
We have quite a few examples on our app notes page:
Here’s the basic 8-bit interface for a character display:
Is it typical for these software commands to be included with the programming software for most
Most micros don’t include these commands for the typical LCD display, software drivers and drawing routines
need to be written specifically for each display.
Can these displays be easily interfaced with a PC so an experimenter could practice displaying characters and messages?
It’s not too difficult to interface with a PC, but embedded micros are easier due to voltage and interface
characteristics. To use a PC you can connect to the Parallel Port if available pretty easily. These days the
easiest way would be to use a USB-to-parallel adapter like the FTDI evaluation boards:
Beyond the standard ASCII characters, what other things can be displayed?
Character LCDs have built-in fonts for English, European, Japanese, Cyrillic, and Hebrew fonts. They also
have RAM available for User-Defined fonts that you can use to make some small custom icons/shapes/characters.
Graphic LCDs allow you to display any pictures, icons, or fonts. You just need to draw what you want and
save into your memory. TFTs allow the same flexibility as graphics, but also allows the fast response
time so you can have animation and video.
Curt Lagerstam is a technician with Newhaven Display International