Overview

The HD44780 (and its updated revision HD44780U) is an industry-standard dot-matrix liquid crystal display (LCD) controller and driver IC developed by Hitachi. It handles character generation, display refresh, and internal RAM management for alphanumeric displays, most commonly 16x2 (16 characters, 2 lines) and 20x4 modules.

The controller includes an integrated Character Generator ROM (CGROM) containing 208 5×85 \times 8 dot font characters, a Character Generator RAM (CGRAM) for 8 custom user-defined characters, and a Display Data RAM (DDRAM) storing up to 80 characters of display text.

Quick reference

Operating voltage (VCC)4.5 V – 5.5 V (typically 5.0 V)
Logic level5V TTL compatible
Display format16x2 or 20x4 alphanumeric characters
Interface4-bit / 8-bit parallel, or I2C via PCF8574 backpack
Current draw1.5 mA (IC only, excluding LED backlight ~100–120 mA)
Character fonts208 5×85\times8 characters in CGROM + 8 custom 5×85\times8 in CGRAM

Pinout

Standard 16-Pin Parallel Interface

PinNameTypeDescription
1VSSPowerGround (0 V)
2VDDPowerSupply voltage (+5 V)
3V0Analog InputContrast adjust (0 V to 5 V via 10 kΩ potentiometer)
4RSDigital InputRegister Select (LOW: Instruction register, HIGH: Data register)
5RWDigital InputRead/Write select (LOW: Write to LCD, HIGH: Read from LCD)
6EDigital InputEnable signal (falling-edge latch for data/commands)
7DB0Digital I/OData bus bit 0 (Unused in 4-bit mode)
8DB1Digital I/OData bus bit 1 (Unused in 4-bit mode)
9DB2Digital I/OData bus bit 2 (Unused in 4-bit mode)
10DB3Digital I/OData bus bit 3 (Unused in 4-bit mode)
11DB4Digital I/OData bus bit 4
12DB5Digital I/OData bus bit 5
13DB6Digital I/OData bus bit 6
14DB7Digital I/OData bus bit 7
15LED+ / APowerBacklight Anode (+5 V via current-limiting resistor)
16LED- / KPowerBacklight Cathode (GND)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Operating VoltageVDD4.55.05.5VStandard supply
Supply CurrentIDD1.53.0mAVDD=5.0 VV_{DD} = 5.0\text{ V}, no backlight
High-level Input VoltageVIH2.2VDDVTTL compatible
Low-level Input VoltageVIL-0.30.6VTTL compatible
Enable Pulse WidthPWEH450nsHigh period for E pulse
Enable Rise/Fall TimetEr, tEf25nsData latch timing

Instruction set

HD44780 accepts commands when RS = 0 and RW = 0. Data is latched on the falling edge of the Enable (E) pin.

InstructionRSRWDB7DB6DB5DB4DB3DB2DB1DB0DescriptionExecution Time
Clear Display0000000001Clears DDRAM and sets DDRAM address 0 in address counter1.52 ms
Return Home000000001*Sets DDRAM address 0 and returns display to original position1.52 ms
Entry Mode Set00000001I/DSSets cursor move direction (I/D) and spec. display shift (S)37 µs
Display ON/OFF0000001DCBSets Display (D), Cursor (C), and Blink (B) ON/OFF37 µs
Cursor/Shift000001S/CR/L**Shifts display or moves cursor without changing DDRAM37 µs
Function Set00001DLNF**Sets Data Length (DL: 8/4 bit), Lines (N: 2/1 line), Font (F)37 µs
Set CGRAM Addr0001AGCAGCAGCAGCAGCAGCSets CGRAM address37 µs
Set DDRAM Addr001ADDADDADDADDADDADDADDSets DDRAM address (Line 1: 0x000x27, Line 2: 0x400x67)37 µs

Wiring

4-Bit Parallel Mode (Arduino Uno)

HD44780 PinArduino Uno PinNotes
1 (VSS)GNDGround
2 (VDD)5VPower
3 (V0)Potentiometer Wiper10 kΩ pot between 5V and GND for contrast control
4 (RS)Pin 12Register Select
5 (RW)GNDTied to GND for Write-only mode
6 (E)Pin 11Enable
11 (DB4)Pin 5Data Bit 4
12 (DB5)Pin 4Data Bit 5
13 (DB6)Pin 3Data Bit 6
14 (DB7)Pin 2Data Bit 7
15 (LED+)5VBacklight Anode
16 (LED-)GNDBacklight Cathode
Info

When using an I2C backpack (PCF8574 expansion board soldered to the LCD), the 16-pin interface is converted to a 4-pin I2C interface (VCC, GND, SDA, SCL) with default I2C address 0x27 or 0x3F.

Common mistakes

  • Blank screen / Solid black blocks: The contrast pin (V0) is floating or set incorrectly. Adjust the 10 kΩ potentiometer connected to pin 3 until characters become visible.
  • Incorrect line addresses: Line 1 DDRAM addresses start at 0x00, while Line 2 DDRAM addresses start at 0x40 (not 0x10). On 20x4 displays, Line 3 starts at 0x14 and Line 4 starts at 0x54.
  • Missing initialization delays: The HD44780 requires a strict startup timing sequence (>15 ms after VDDV_{DD} reaches 4.5 V) before receiving initialization instructions.

Notes

  • Custom Characters: Up to 8 custom characters can be stored in CGRAM (addresses 0x000x07). Each character is defined as an 8-byte array representing 5×85 \times 8 pixel patterns.

Assets & downloads