How to control a HD44780-based Character-LCD
(Industry-Standard-Character-LCD)
General info and code-examples
1.1. Pin assignment
The pin assignment shown in Table 1.1. is the industry standard for character
LCD-modules with a maximum of 80 characters.
The pin assignment shown in Table 1.2. is the industry standard for character
LCD-modules with more than 80 characters.
To be sure always check the manufacturers datasheet!
To locate pin 1 on a module check the manufacturers datasheet!
Table1.1., Pin assignment for <= 80
character displays
Pin
number
Symbol Level I/O Function
1 Vss - -
2 Vcc - -
3 Vee - -
4 RS 0/1 I
5 R/W 0/1 I
6 E
7 DB0 0/1 I/O
8 DB1 0/1 I/O
9 DB2 0/1 I/O
10 DB3 0/1 I/O
11 DB4 0/1 I/O
12 DB5 0/1 I/O
13 DB6 0/1 I/O
1,
1-->0
Power supply
(GND)
Power supply
(+5V)
Contrast
adjust
0 = Instruction
input
1 = Data input
0 = Write to
LCD module
1 = Read from
LCD module
I Enable signal
Data bus line
0 (LSB)
Data bus line
1
Data bus line
2
Data bus line
3
Data bus line
4
Data bus line
5
Data bus line
6
Table1.1., Pin assignment for <= 80
character displays
Pin
number
Pin
number
Symbol Level I/O Function
14 DB7 0/1 I/O
Table 1.2., Pin assignment for > 80
character displays
Symbol Level I/O Function
1 DB7 0/1 I/O
2 DB6 0/1 I/O
3 DB5 0/1 I/O
4 DB4 0/1 I/O
5 DB3 0/1 I/O
6 DB2 0/1 I/O
7 DB1 0/1 I/O
8 DB0 0/1 I/O
9 E1
10 R/W 0/1 I
11 RS 0/1 I
12 Vee - -
13 Vss - -
14 Vcc - -
15 E2
16 n.c.
1,
1->0
1,
1->0
Data bus line
7 (MSB)
Data bus line
7 (MSB)
Data bus line
6
Data bus line
5
Data bus line
4
Data bus line
3
Data bus line
2
Data bus line
1
Data bus line
0 (LSB)
Enable signal
I
row 0 & 1
0 = Write to
LCD module
1 = Read from
LCD module
0 = Instruction
input
1 = Data input
Contrast
adjust
Power supply
(GND)
Power supply
(+5V)
Enable signal
I
row 2 & 3
1.2. Instruction set
Table 1.3. HD44780 instruction set
Instruction
Clear display 0 0 0 0 0 0 0 0 0 1
Cursor home 0 0 0 0 0 0 0 0 1 *
Entry mode
set
Display
On/Off control
Cursor/display
shift
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 1 I/D S
0 0 0 0 0 0 1 D C B
0 0 0 0 0 1 S/C R/L * *
Code
Description
Clears
display and
returns
cursor to
the home
position
(address 0).
Returns
cursor to
home
position
(address 0).
Also returns
display
being
shifted to
the original
position.
DDRAM
contents
remains
unchanged.
Sets cursor
move
direction
(I/D),
specifies to
shift the
display (S).
These
operations
are
performed
during data
read/write.
Sets On/Off
of all display
(D), cursor
On/Off (C)
and blink of
cursor
position
character
(B).
Sets
cursor-move
or
display-shift
(S/C), shift
Execution
time**
1.64mS
1.64mS
40uS
40uS
40uS