LCD...
Descrizione Generale del funzionamento di un LCD 2xN caratteri


LCD Home Page
Home Page

          
PIN
Normalmente l'unica differenza nei varil LCD può essere l'assegnazione dei pin, le dimensioni meccaniche e la presenza o meno della retro illuminazione.
Qui sotto è riportato il pin out del MDLS16265BLVLD4 reperibile presso WWW.SILICA.COM le cui caratteristiche principali sono:

Qui sotto è riportato un'altro pin out di un LCD che non ha l'illuminazione.
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)

pin1 GND
pin2 VCC normalmente 5V
pin3 Contrasto del LCD, di solito si usa un potenziometro per regolare adeguatamente il contrasto
pin4 RS Register Select
0 il dato trasferito verso il LCD è un comando e l'eventuale dato ritornato indica lo stato
1 il dato viene trasferito verso o dal LCD
pin5 R/W Read/Write
0 write comandi o caratteri verso il LCD
1 read lo stato o i caratteri dal LCD
pin6 E enable, questa linea viene usata per trasferire comandi o caratteri verso il LCD.
Quando si scrive sul LCD l'acquisizione da parte del LCD viene fatta quando questo pin passa da 1 a 0.
Quando si legge dal LCD l'acquisizione da parte della MCU deve essere fatta dopo che questa linea è passata da 0 a 1, i dati restano disponibili sino a che questa linea torna a 0.
pin7 to pin14 sono il bus dati
Si rammenti che i dati possono essere trasferiti a 4bit (nibbles usando D4...D7) o 8bit.


Instruction set
Qui sotto sono riportati i comandi disponibili per pilotare il LCD

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.

Bit names
Bit name Setting / Status
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


In generale un LCD di 2 righe per 40 caratteri sarà come sotto.
2-line LCD

Interfacing
Gli LCD possono essere interfacciati a 8 e 4 bit.

8-bit interface
Example of busy flag testing using an 8-bit interface.
8-bit interface

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


Example of data transfer using a 4-bit interface.
4-bit interface

Character set
Qui sotto è riportata la CGROM Character Code Table del MDLS16265BLVLD4

Di deguito una mappa di caratteri di un'altro LCD con formato 5x7 dot font
LCD character set
SOFTWARE
Per sviluppare un'adeguato set di comandi per gli LCD si devono prevedere almeno i comandi sotto riportati:

LCD initialisation
Entry mode
- Sets entry mode of the LCD
- b0 : 0 = no display shift, 1 = display shift
b1 : 0 = auto-decrement, 1 = auto-increment
b2-b7 : don't care
Display mode
- Sets display control
- b0 : 0 = cursor blink off, 1 = cursor blink on (if b1 = 1)
b1 : 0 = cursor off, 1 = cursor on
b2 : 0 = display off, 1 = display on (display data remains in DD-RAM)
b3-b7 : don't care
Set character generator RAM address
- Sets the Character-Generator-RAM address.
CGRAM data is read/written after this setting.
Set display data RAM address
- Sets the Display-Data-RAM address.
DDRAM data is read/written after this setting.
Get address counter contents
- Returns address counter contents, used for both DDRAM and CGRAM.
Test Busy flag
Clear display
Clear Line(num.line)
Cursor home
Set cursor position(row, position)
Write character
Write string



LCD Home Page
Home Page