logo  

Lidt om lcd display med HD44780 controler

Startside
Links
Elektronik
Programmer
Formler
Om dsel.dk








  Kig også under Microcontroler

 

Table 2.1., Pin assignment

Pin number Symbol Level I/O Function

1

Vss

-

-

Power supply (GND)

2

Vcc

-

-

Power supply (+5V)

3

Vee

-

-

Contrast adjust

4

RS

0/1

I

0 = Instruction input
1 = Data input

5

R/W

0/1

I

0 = Write to LCD module
1 = Read from LCD module

6

E

1, 1-->0

I

Enable signal

7

DB0

0/1

I/O

Data bus line 0 (LSB)

8

DB1

0/1

I/O

Data bus line 1

9

DB2

0/1

I/O

Data bus line 2

10

DB3

0/1

I/O

Data bus line 3

11

DB4

0/1

I/O

Data bus line 4

12

DB5

0/1

I/O

Data bus line 5

13

DB6

0/1

I/O

Data bus line 6

14

DB7

0/1

I/O

Data bus line 7 (MSB)

Table 2.2., Pin assignment
Pin number Symbol Level I/O Function
1 DB7 0/1 I/O Data bus line 7 (MSB)
2 DB6 0/1 I/O Data bus line 6
3 DB5 0/1 I/O Data bus line 5
4 DB4 0/1 I/O Data bus line 4
5 DB3 0/1 I/O Data bus line 3
6 DB2 0/1 I/O Data bus line 2
7 DB1 0/1 I/O Data bus line 1
8 DB0 0/1 I/O Data bus line 0 (LSB)
9 E1 1, 1->0 I Enable signal row 0 & 1
10 R/W 0/1 I 0 = Write to LCD module
1 = Read from LCD module
11 RS 0/1 I 0 = Instruction input
1 = Data input
12 Vee - - Contrast adjust
13 Vss - - Power supply (GND)
14 Vcc - - Power supply (+5V)
15 E2 1, 1->0 I Enable signal row 2 & 3
16 n.c.      


2.2. Instruction set

Table 2.3. HD44780 instruction set
Instruction Code Description Execution time**
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Clear display 0 0 0 0 0 0 0 0 0 1 Clears display and returns cursor to the home position (address 0). 1.64mS
Cursor home 0 0 0 0 0 0 0 0 1 * Returns cursor to home position (address 0). Also returns display being shifted to the original position. DDRAM contents remains unchanged. 1.64mS
Entry mode set 0 0 0 0 0 0 0 1 I/D S Sets cursor move direction (I/D), specifies to shift the display (S). These operations are performed during data read/write. 40uS
Display On/Off control 0 0 0 0 0 0 1 D C B Sets On/Off of all display (D), cursor On/Off (C) and blink of cursor position character (B). 40uS
Cursor/display shift 0 0 0 0 0 1 S/C R/L * * Sets cursor-move or display-shift (S/C), shift direction (R/L). DDRAM contents remains unchanged. 40uS
Function set 0 0 0 0 1 DL N F * * Sets interface data length (DL), number of display line (N) and character font(F). 40uS
Set CGRAM address 0 0 0 1 CGRAM address Sets the CGRAM address. CGRAM data is sent and received after this setting. 40uS
Set DDRAM address 0 0 1 DDRAM address Sets the DDRAM address. DDRAM data is sent and received after this setting. 40uS
Read busy-flag and address counter 0 1 BF CGRAM / DDRAM address Reads Busy-flag (BF) indicating internal operation is being performed and reads CGRAM or DDRAM address counter contents (depending on previous instruction). 0uS
Write to CGRAM or DDRAM 1 0 write data Writes data to CGRAM or DDRAM. 40uS
Read from CGRAM or DDRAM 1 1 read data Reads data from CGRAM or DDRAM. 40uS

Remarks:
- DDRAM = Display Data RAM.
- CGRAM = Character Generator RAM.
- DDRAM address corresponds to cursor position.
- * = Don't care.
- ** = Based on Fosc = 250KHz.

Table 2.4. Bit names
Bit name Settings
I/D 0 = Decrement cursor position 1 = Increment cursor position
S 0 = No display shift 1 = Display shift
D 0 = Display off 1 = Display on
C 0 = Cursor off 1 = Cursor on
B 0 = Cursor blink off 1 = Cursor blink on
S/C 0 = Move cursor 1 = Shift display
R/L 0 = Shift left 1 = Shift right
DL 0 = 4-bit interface 1 = 8-bit interface
N 0 = 1/8 or 1/11 Duty (1 line) 1 = 1/16 Duty (2 lines)
F 0 = 5x7 dots 1 = 5x10 dots
BF 0 = Can accept instruction 1 = Internal operation in progress

 

2.3. Visible DDRAM addresses

2.3.1. 1-line displays

Shown after reset (with N=0).
 

Table 2.5. DDRAM address usage for a 1-line LCD
Display size Visible
Character positions DDRAM addresses
1*8 00..07 00h..07h
1*16 00..15 00h..0Fh
1*20 00..19 00h..13h
1*24 00..23 00h..17h
1*32 00..31 00h..1Fh
1*40 00..39 00h..27h


 

2.3.2. 2-line displays

Shown after reset (with N=1).

 

Table 2.6. DDRAM address usage for a 2-line LCD

Display size Visible
Character positions DDRAM addresses
2*16 00..15 00h..0Fh + 40h..4Fh
2*20 00..19 00h..13h + 40h..53h
2*24 00..23 00h..17h + 40h..57h
2*32 00..31 00h..1Fh + 40h..5Fh
2*40 00..39 00h..27h + 40h..67h


2.3.3. 4-line displays

Shown after reset (with N=1).

 

Table 2.7. DDRAM address usage for a 4-line LCD

Display size Visible
Character positions DDRAM addresses
4*16 00..15 00h..0Fh + 40h..4Fh + 14h..23h + 54h..63h
4*20 00..19 00h..13h + 40h..53h + 14h..27h + 54h..67h
4*40 (00..39) on 1st controller and
(00..39) on 2nd controller
(00h..27h + 40h..67h) on 1st controller and
(00h..27h + 40h..67h) on 2nd controller
2.4. Interfacing
2.4.1. 8-bit interface
Example of busy flag testing using an 8-bit interface.

2.4.2. 4-bit interface
Example of busy flag testing using a 4-bit interface.


Example of data transfer using a 4-bit interface.

2.5. Character set
Characterset for 5x7 dot font (to be completed..)



Tilbage Top