Hitachi HD44780 LCD controller

[1] Numerous third-party displays are compatible with its 16-pin interface and instruction set, making it a popular and cheap LCD driver.

Character LCDs use a 16-contact interface, commonly using pins or card edge connections on 0.1 inch (2.54 mm) centers.

This interface was designed to be easily hooked up to the Intel MCS-51 XRAM interface, using only two address pins, which allowed displaying text on LCD using simple MOVX commands, offering a cost effective option for adding text display to devices.

The following algorithm ensures that the LCD is in the desired mode: The same command is sent three times, Function Set with 8-bit interface D7–D4 = binary 0011, the lower four bits are "don't care", using single enable pulses.

The lower 3 bits of the character codes from 0–7 and 8–15 select the groups of 8 fields in the CGRAM memory.

Reading and writing to the DDRAM is done by setting the RS input high during bus transfers.

Likewise reading and writing to the CGRAM is done by setting the RS input high during bus transfers.

If a display with the recommended 91 kΩ resistor is powered from 3.3 volts the oscillator will run much slower.

[citation needed] Two versions of the ROM have been developed:[5] The 7-bit ASCII subset for the Japanese version is non-standard: it supplies a Yen symbol where the backslash character is normally found, and left and right arrow symbols in place of tilde and the rubout character.

A limited number of custom characters can be programmed into the device in the form of a bitmap using special commands.

HD44780 LCD controller and HD44100 drivers on the back side of a 40266 LCD module
Block diagram of an HD44780U-based LCD module
Dragon12-P Freescale HCS12 /9S12 microcontroller project development board utilizing an HD44780-based LC display
A 20×4-character display
Amber backlight on a 8×2-character HD44780 display