HD44780 LCD

From Leo's Notes
Revision as of 19:59, 9 August 2020 by Leo (talk | contribs)
This page was last edited on 9 August 2020, at 19:59.

The Hitachi HD44780 is a LCD controller developed by Hitachi in the 1980s. These displays are easily identified by their 16 pin interface. LCD displays using the HD44780 are inexpensive and comes in various sizes.

Usage

The LCD can be driven in 4-bit operation mode which only requires pins D4-D7.

Pinouts

The HD44780 has a 16 pin header.

Pin Description
1 VSS - Ground
2 VDD - 5v
3 VE - Contrast voltage
4 RS - Register Select
5 RW - Read/Write
6 En - Enable
7 Data 0 - Not used in 4-bit operation
8 Data 1 - Not used in 4-bit operation
9 Data 2 - Not used in 4-bit operation
10 Data 3 - Not used in 4-bit operation
11 Data 4
12 Data 5
13 Data 6
14 Data 7
15 Backlight Anode - 5v
16 Backlight Cathode - Ground

User Defined Fonts

The HD44780 has a ROM that contains all the ASCII characters for the 5x8 dot matrix. A limited number of custom characters can be programmed into the device as bitmaps and are stored in the controller's memory. These custom characters will need to be re-programmed after the controller is switched on.

More information at: http://www.quinapalus.com/hd44780udg.html

Troubleshooting

Garbage being rendered on startup

I tried hooking up a HD44780 to an Arduino Pro Mini and tried using the example Hello World sketch but ended up getting garbage being drawn. Adding capacitors didn't help. The odd thing was, the LCD was able to render 'ello, world!' without the first 'H' sometimes but ends up showing garbage again when the microcontroller is reset.

I eventually used another Arduino with the same sketch using jumper wires rather than on the breadboard and it started working. I think the issue was one of the data pins wasn't making a proper connection and the display didn't end up in 4 bit mode? I'm unable to reproduce it however and everything is working reliably.