Arduino: How to control a HD44780 based character LCD

From Luky-Wiki
Revision as of 23:34, 4 December 2012 by Lukas Dzunko (talk | contribs)

Jump to: navigation, search

Many characters LCD displays use so called HD44780 based protocol on interface. This is more like standard but i recommend to check datasheet from vendor. There can be small modifications and/or difference in timing. Especially timing is important. If communication rate is too quick, then LCD drop data or misbehave depending on internal state. I recommend to check busy flag if possible. If not then correct delay should be applied between commands. Result of commands can be checked via LCD Simulator prior to programing MCU. For example i like this one: DjLCDSIM.

Command Set

Clear Display

Return Home

Entry Mode Set

Display ON / OFF Control

Cursor or Display Shift

Function set

Set CGRAM Address

Set DDRAM Address

Read Busy Flag and Address

Write data to RAM

Read data from RAM

Initialization of display

8-bit mode

4-bit mode