HD44780 LCD: Difference between revisions

From Leo's Notes
This page was last edited on 9 August 2020, at 20:13.
m Text replacement - "Category:Tinkering" to "{{Navbox Tinkering}}Category:Tinkering"
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
The HD44780 is a controller for character-based liquid crystal displays.
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.


== User Defined Fonts ==
As of 2020, the 20x4 variants cost about $12 CAD while the smaller 16x02 variants cost about $3 CAD.
* http://www.quinapalus.com/hd44780udg.html


{{Navbox Tinkering}}[[Category:Tinkering]]
==Usage==
The LCD can be driven in 4-bit operation mode which only requires pins D4-D7. If you do not want to deal with all this but instead would rather use an i2c interface, you can get an adapter board with a PCF8574 for about $1 USD. 
 
===Pinouts===
The HD44780 has a 16 pin header.
{| class="wikitable"
!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. <gallery widths="240" heights="240">
File:HD44780 Rendering Garbage.jpg|HD44780 Rendering Garbage
File:HD44780 Hello World Sketch.jpg|HD44780 Hello World Sketch, missing the H
</gallery>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.{{Navbox Tinkering}}
[[Category:Tinkering]]

Latest revision as of 20:13, 9 August 2020

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.

As of 2020, the 20x4 variants cost about $12 CAD while the smaller 16x02 variants cost about $3 CAD.

Usage

The LCD can be driven in 4-bit operation mode which only requires pins D4-D7. If you do not want to deal with all this but instead would rather use an i2c interface, you can get an adapter board with a PCF8574 for about $1 USD.

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.