Você está na página 1de 20

DISPLAY LCD

Ilton L. Barbacena
Claudio Afonso Fleury

Outubro - 1996

Display LCD

01. INTRODUO
Os mdulos LCD so interfaces de sada muito til em sistemas microprocessados. Estes mdulos podem ser grficos e a caracter.
Os mdulos LCD grficos so encontrados com resulues de 122x32, 128x64, 240x64 e 240x128 dots pixel, e geralmente esto
disponveis com 20 pinos para conexo. Os LCD comuns (tipo caracter) so especificados em nmero de linhas por colunas e so
encontrados nas configuraes previstas na Tabela 1.

Nmero de
Colunas

Nmero de
Linhas

Quantidade de
pinos

14

12

14/15

16

14/16

16

14/16

16

14/16

20

14/16

20

14/16

20

14/16

24

14/16

24

14/16

40

16

16

40

Tabela 1 - Mdulos LCD disponveis

Os mdulos podem ser encontrados com LED backlight (com uma iluminao de fundo) para facilitar as leituras durante a noite.
Neste caso, a alimentao deste led faz-se normalmente pelos pinos 15 e 16 para os mdulos comuns e 19 e 20 para os mdulos
grficos, sendo os pinos 15 e 19 para ligao ao anodo e os pinos 16 e 20 para o catodo. A corrente de alimentao deste led varia
de 100 a 200mA, dependendo do modelo.
Estes mdulos utilizam um controlador prprio, permitindo sua interligao com com outras placas atravs de seus pinos, onde
deve ser alimentado o mdulo e interligado o barramento de dados e controle do mdulo com a placa do usurio. Naturalmente
que alm de alimentar e conectar os pinos do mdulo com a placa do usurio dever haver um protocolo de comunicao entre as
partes, que envolve o envio de bytes de instrues e bytes de dados pelo sistema do usurio.

Assim como em um rdio relgio todo mdulo LCD permite um ajuste na intensidade da luz emitida ou ajuste
de contraste, isto possvel variando-se a tenso no pino 3. A Figura 1 mostra um circuito tpico e
recomendado pela maioria dos fabricantes para efetuar este ajuste. Alguns fabricantes recomenda o uso de um
resistor de 4K7 em srie com o potencimetro de 10K.
A Tabela 2 descreve cada pino do mdulo ou do display para conexo deste a outras placas:

Display LCD

Pino

Funo

Descrio

Alimentao

Terra ou GND

Alimentao

VCC ou +5V

V0

Tenso para ajuste de contraste (ver Figura 1)

RS

Seleo:

1 - Dado, 0 - Instruo

R/W

Seleo:

1 - Leitura, 0 - Escrita

Chip select

1 ou (1 0) - Habilita, 0 - Desabilitado

B0

LSB

B1

B2

Barramento

10

B3

de

11

B4

Dados

12

B5

13

B6

14

B7

15

A (qdo existir)

16

K (qdo existir)

MSB
Anodo p/ LED backlight
Catodo p/ LED backlight
Tabela 2 - Pinagem dos Mdulos LCD

Figura 1 - Detalhe do controle de contraste do mdulo LCD

Display LCD

02. INTERFACE COM CPU


Os mdulos LCD so projetados para conectar-se com a maioria das CPUs disponveis no mercado, bastando para isso que esta
CPU atenda as temporizaes de leitura e escrita de instrues e dados, fornecido pelo fabricante do mdulo. A Figura 2 mostra
um exemplo de diagrama de tempos tpico requeridos para operao de escrita no mdulo LCD, estes tempos variam em funo
do clock da CPU do usurio.

Figura 2 - (a) Escrita no LCD (b) Ciclo de Escrita da CPU 8051

A Tabela 3 a seguir mostra a relao entre a freqncia da CPU e a temporizao de leitura/escrita da maioria dos mdulos LCD.
Em geral, podemos conectar o barramento de dados da CPU ao barramento do mdulo, mapeando-o convenientemente na placa
de usurio, e efetuarmos uma operao normal de leitura/escrita sem mais problemas.

Clock da CPU

AS

(MHz)

PW

EH

(nS)

(nS )

08 MHz

325

650

75

10 MHz

250

500

50

12 MHz

200

400

33,3

16 MHz

138

275

12,5

Tabela 3 - Relao clock da CPU x Temporizao do Mdulo LCD

A Figura 3 mostra um exemplo de conexo de uma placa baseada nos microcontroladores da linha Intel de 8 bits (8051), ao
mdulo LCD. Neste caso como os sinais A0 e A1 esto conectados aos pinos 4 e 5, teremos ento 04 (quatro) endereos distintos
para comunicao entre a CPU e o mdulo LCD. A Tabela 4 mostra estes endereos.

Display LCD

Figura 3 - Sistema baseado na CPU 8051 com mdulo LCD

Display LCD

ENDEREO

R/W

RS

4000

Instruo - Escrita no modulo

4001

Dados

4002

Instruo - Leitura no modulo

Dados

4003

DESCRIO
- Escrita no modulo
- Leitura no modulo

Tabela 4 - Endereamento do mdulo LCD para Figura 3

O exemplo apresentado na Figura 3 refere-se a conexo do mdulo LCD com comunicao/transmisso de 8 bits, mas podemos
conectar o mdulo com transmisso a cada 4 bits, conforme mostrado na Figura 4. Neste caso no utilizamos os pinos 7, 8, 9 e
10. Isto muito til quando a CPU do usurio possui poucos pinos de I/O, caso tpico da linha de microprocessadores PIC, como
por exemplo o Basic Stamp. Agora surge a dvida, um mesmo mdulo pode conectar-se com 8 ou 4 bits? como isto possvel?
Ocorre que o mdulo LCD quando alimentado necessita de algumas instrues de inicializao que identificar qual a forma de
transmisso de dados que ser estabelecida entre a CPU e o mdulo.

Figura 4 - Modulo LCD comunicando-se com 4 bits

Display LCD

03. PROGRAMAO / INSTRUES


A Tabela 5 traz um resumo das instrues mais usadas na comunicao com os mdulos LCD.

DESCRIO

RS

R/W

Cdigo h

Liga (sem cursor)

0C

Desliga

0A / 08

01

Liga

0E

Desliga

0C

Desloca para Esquerda

10

Desloca para Direita

14

Cursor Home

02

Cursor Piscante

0D

Cursor com Alternncia

0F

Sentido de deslocamento do

Para a esquerda

04

cursor ao entrar com caracter

Para a direita

06

Deslocamento da mensagem

Para a esquerda

07

ao entrar com caracter

Para a direita

05

Deslocamento da mensagem

Para a esquerda

18

sem entrada de caracter

Para a direita

1C

End. da primeira posio

primeira linha

80

segunda linha

C0

Display

MODO

Limpa Display com


Home cursor
Controle do Cursor

Tabela 5 - Instrues mais comuns

A Tabela 6 apresenta o conjunto de instrues, levando-se em considerao que a comunicao com o mdulo seja com
barramento de 8 bits (fixado durante a inicializao). Para o caso desta comunicao ocorrer com apenas 4 bits (nible), os dados
ou instrues sero enviados por nible. sendo enviado o nible mais significativo primeiro. Por exemplo para limpar o display,
escreve-se o nible 0000 e depois 0001.

Display LCD

INSTRUO

R
S
0

R/
W
0

B7

B6

B5

B4

B3

B2

B1

B0

DESCRIO e tempo de execuo (uS)

1.6 mS

Home p/
Cursor

Fixa o modo de
funcionamento

-Limpa todo o display e retorna o cursor


para a primeira posio da primeira linha
-Retorna o cursor para a 1. coluna da 1.
Linha
-Retorna a mensagem previamente
deslocada a sua posio original
-Estabelece o sentido de deslocamento do
cursor (X=0 p/ esquerda, X=1 p/ direita)
-Estabelece se a mensagem deve ou no
ser deslocada com a entrada de um novo
caracter (S=1 SIM, X=1 p/ direita)
-Esta instruo tem efeito somente durante
a leitura e escrita de dados.
-Liga (D=1) ou desliga display (D=0)
-Liga(C=1) ou desliga cursor (C=0)
-Cursor Piscante(B=1) se C=1
-Desloca o cursor (C=0) ou a mensagem
(C=1) para a Direita se (R=1) ou esquerda
se (R=0)
- Desloca sem alterar o contedo da
DDRAM
-Comunicao do mdulo com 8 bits(Y=1)
ou 4 bits(Y=0)
-Nmero de linhas: 1 (N=0) e 2 ou mais
(N=1)
-Matriz do caracter: 5x7(F=0) ou
5x10(F=1)
- Esta instruo deve ser ativada durante a
inicializao
-Fixa o endero na CGRAM para
posteriormente enviar ou ler o dado (byte)

Limpa Display

Controle do
Display

Desloca cursor
ou mensagem

Fixa o modo de
utilizao do
mdulo LCD

Posiciona no
endereo da
CGRAM
Posiciona no
endereo da
DDRAM

Leitura do
Flag Busy

Escreve dado
na CGRAM /
DDRAM
L Dado na
CGRAM /
DDRAM

1
Endereo da CGRAM

1
Endereo da DDRAM

B
F

AC

1
Dado a ser gravado no LCD

1
Dado lido do mdulo

-Fixa o endero na DDRAM para


posteriormente enviar ou ler o dado (byte)

-L o contedo do contador de endereos


(AC) e o BF. O BF (bit 7) indica se a
ltima operao foi concluda (BF=0
concluda) ou est em execuo (BF=1).
- Grava o byte presente nos pinos de dados
no local apontado pelo contador de
endereos (posio do cursor)
- L o byte no local apontado pelo
contador de endereos (posio do cursor)

1.6 mS

40 uS

40 uS

40 uS

40 uS

40 uS

40 uS

40 uS

40 uS

Tabela 5 - Conjunto de instrues do mdulo LCD

Display LCD

3.1 - DESCRIO DETALHADA DAS INSTRUES


3.1.1- Limpa Display
CDIGO

RS
0

R/W
0

B7
0

B6
0

B5
0
MSB

B4
0

B3
0

B2
0

B1
0
LSB

B0
1

Esta instruo escreve o caracter ASCII 32 que corresponde ao branco ou barra de espao em todos os endereos da DDRAM
apagando a mensagem que estiver escrita. O cursor retorna ao endereo zero, ou seja, posio mais a esquerda da primeira
linha.
3.1.2 - Cursor Home

CDIGO

RS
0

R/W
0

B7
0

B6
0

B5
0
MSB

B4
0

B3
0

B2
0

B1
1
LSB

B0
*

Faz retornar o cursor para a posio mais a esquerda da primeira linha e faz voltar posio original mensagens previamente
deslocadas. O contedo da DDRAM permanece inalterado.

3.1.3 - Fixa o modo de operao

CDIGO

RS
0

R/W
0

B7
0

B6
0

B5
0
MSB

B4
0

B3
0

B2
1

B1
X
LSB

B0
S

Esta instruo tem efeito somente durante a leitura ou escrita de dados, portanto, deve ser ativada na inicializao.
Estabelece o sentido de deslocamento do cursor (X=0 p/ esquerda, X=1 p/ direita)
Estabelece se a mensagem deve ou no ser deslocada com a entrada de um novo caracter
S=1 SIM, S=0 NO. Exemplo: X=1 e S=1 => mensagem desloca p/ direita.
3.1.4 - Controle do Display

CDIGO

RS
0

R/W
0

B7
0

B6
0

B5
0
MSB

B4
0

B3
0

B2
D

B1
C
LSB

B0
B

A mensagem fica aparente quando D=1 e desaparece quando D=0, porm o contedo da DDRAM fica inalterado. O cursor fica
aparente quando C=1 e desaparece quando C=0, porm as propriedades de escritas vigentes permanecem inalteradas. O
cursor quando aparente liga a ltima linha que compem o caracter, exceto quando B=1, que apresenta em alternncia com uma
matriz com todos os pontos negros em intervalos de 0,4 segundos. Quando B=1 e C=0, obteremos a ativao intermitente de uma
matriz completa (todos os pontos da matriz).
3.1.5 - Deslocamento do Cursor ou da Mensagem

CDIGO

RS
0

R/W
0

B7
0

B6
0

B5
0
MSB

B4
1

B3
C

B2
R

B1
*
LSB

B0
*

Display LCD

Desloca o cursor ou a mensagem sem que para isso tenha que escrever ou ler dados do display. Utilizado para posicionamento dos
dados no display.
C
0
0
1
1

R
0
1
0
1

FUNO
Desloca o cursor para a esquerda e decrementa o contador de endereo.
Desloca o cursor para a direita e incrementa o contador de endereo.
Desloca a mensagem e o cursor para a esquerda.
Desloca a mensagem e o cursor para a direita

3.1.6 - Estabelece o modo de utilizao do Mdulo LCD

CDIGO

RS
0

R/W
0

B7
0

B6
0

B5
1
MSB

B4
Y

B3
N

B2
F

B1
*
LSB

B0
*

Y estabelece o modo de comunicao. Se Y=1 estabelece 8 bits e quando Y=0 ser 4 bits, enviados em duas operaes, com os 4
bits (Nible) mais significativos sendo enviados primeiro. N fixa o nmero de linhas: N=0 para uma linha e N=1 para duas ou
mais linhas. F fixa o tipo da matriz: F=0 para matriz 7x5 ou 8x5 e F=1 para matriz 10x5 (somente possvel quando apresentando
em uma linha).
3.1.7 - Endereamento da CGRAM
CGRAM uma regio da memria RAM destinada para criao de caracteres especiais, como por exemplo: , , , etc.

CDIGO

RS
0

R/W
0

B7
0

B6
1

B5
A
MSB

B4
A

B3
A

B2
A

B1
A
LSB

B0
A

Estabelece o endereo da CGRAM no contador de endereos (AC) como um nmero binrio AAAAAA e aps isto os dados sero
escritos ou lidos pela CPU neste endereo. Cada caracter especial ocupa 8 endereos na CGRAM.
3.1.8 - Endereamento da DDRAM

CDIGO

RS
0

R/W
0

B7
1

B6
B5
A
A
MSB

B4
A

B3
A

B2
A

B1
A
LSB

B0
A

Estabelece o endereo da DDRAM no contador de endereos (AC) como um nmero binrio AAAAAAA e aps isto os dados
sero escritos ou lidos pela CPU neste endereo. Para os display de uma linha AAAAAAA varia de 80H a CFH. J para todos os
display de duas linhas varia de 80H a A7H para a primeira linha e de C0H a E7H para a segunda linha.
3.1.9 - Busy Flag (BF)

CDIGO

RS
0

R/W
1

B7
BF

B6
B5
A
A
MSB

B4
A

B3
A

B2
A

B1
A
LSB

B0
A

Busy Flag ou o bit 7 indica ao sistema onde est conectado o mdulo LCD, se o controlador do mdulo est ocupado com alguma
operao interna (BF=1), e neste caso, no aceita nenhuma instruo at que BF volte para 0.
Alm disso, permite a leitura do contedo do contador de endereos (AC) expressa por AAAAAAA. O contador de endereos
pode conter tanto endereo da CGRAM como da DDRAM, depende neste caso, da instruo anterior.

Display LCD

3.1.10 - Escrita de dados na DDRAM ou CGRAM

CDIGO

RS
1

R/W
0

B7
A

B6
B5
A
A
MSB

B4
A

B3
A

B2
A

B1
A
LSB

B0
A

Escreve o byte AAAAAAAA tanto na CGRAM como na DDRAM, dependendo da instruo anterior (que define o endereo).
Aps a escrita, o endereo automaticamente incrementado ou decrementado de uma unidade dependendo do modo escolhido
(ver item 3.1.3).
3.1.11 - Leitura de dados na DDRAM ou CGRAM

CDIGO

RS
1

R/W
1

B7
A

B6
B5
A
A
MSB

B4
A

B3
A

B2
A

B1
A
LSB

B0
A

Faz uma leitura na CGRAM ou na DDRAM, dependendo da instruo anterior (que define o endereo). importante que
precedendo a esta leitura seja executado a instruo de estabelecimento do endereo da CGRAM ou DDRAM, pois caso contrrio
o dado lido invlido.

3.2 - TABELAS DE ENDEREOS DOS CARCTERES NA DDRAM


A seguir resumiremos os endereos da DDRAM (em hexadecimal) dos caracteres da maioria dos mdulos LCD disponveis no
mercado.

Mdulo 8x1
Endereo(hexa)

10

1
80

2
81

Caracter
4
5
83
84

3
82

6
85

7
86

8
87

LCD 16x1

1
80

2
81

3
82

4
83

5
84

6
85

7
86

8
87

9
88

10
89

11
8
A

12
8B

13
8C

14
8
D

15
8E

16
8F

LCD 16x1

1
80

2
81

3
82

4
83

5
84

6
85

7
86

8
87

9
C0

10
C1

11
C2

12
C3

13
C4

14
C5

15
C6

16
C7

LCD 16x2
linha 1

1
80

2
81

3
82

4
83

5
84

6
85

7
86

8
87

9
88

10
89

12
8B

13
8C

16
8F

C0

C1

C2

C3

C4

C5

C6

C7

C8

C9

C
B

C
C

14
8
D
C
D

15
8E

linha 2

11
8
A
C
A

C
E

C
F

Display LCD

LCD
20x2
linha 1
linha 2

LCD
20x4
linha 1
linha 2
linha 3
linha 4

10 11 12 13 14 15 16 17 18 19 20

80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3

80
C0
80
C0

81
C1
81
C1

82
C2
82
C2

83
C3
83
C3

84
C4
84
C4

85
C5
85
C5

86
C6
86
C6

87
C7
87
C7

88
C8
88
C8

10 11 12 13 14 15 16 17 18 19 20
89
C9
89
C9

8A
CA
8A
CA

8B
CB
8B
CB

8C
CC
8C
CC

8D
CD
8D
CD

8E
CE
8E
CE

8F
CF
8F
CF

90
D0
90
D0

91
D1
91
D1

92
D2
92
D2

93
D3
93
D3

LCD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
24x1
LCD
24x2
linha 1 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97
linha 2 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7

LCD
40x1
a LCD
40X4
linha 1
linha 2
linha 3
linha 4
Cont.

10 11 12 13 14 15 16 17 18 19 20

80
C0
80
C0
21

81
C1
81
C1
22

82
C2
82
C2
23

83
C3
83
C3
24

84
C4
84
C4
25

85
C5
85
C5
26

86
C6
86
C6
27

87
C7
87
C7
28

88
C8
88
C8
29

89
C9
89
C9
30

8A
CA
8A
CA
31

8B
CB
8B
CB
32

8C
CC
8C
CC
33

8D
CD
8D
CD
34

8E
CE
8E
CE
35

8F
CF
8F
CF
36

90
D0
90
D0
37

91
D1
91
D1
38

92
D2
92
D2
39

93
D3
93
D3
40

linha 1
linha 2
linha 3
linha 4

94
D4
94
D4

95
D5
95
D5

96
D6
96
D6

97
D7
97
D7

98
D8
98
D8

99
D9
99
D9

9A
DA
9A
DA

9B
DB
9B
DB

9C
DC
9C
DC

9E
DD
9E
DD

9D
DE
9D
DE

9F
DF
9F
DF

A0
E0
A0
E0

A1
E1
A1
E1

A2
E2
A2
E2

A3
E3
A3
E3

A4
E4
A4
E4

A5
E5
A5
E5

A6
E6
A6
E6

A7
E7
A7
E7

OBS:
Para os mdulos de 04 linhas estamos considerando que existe um outro pino de habilitao (como o pino 6) para as duas
ltimas linhas, portando outros endereos de hardware.
Antes de enviar uma instruo para escrita de dados no display, enviar antes uma de endereamento na DDRAM, com o
endereo onde deve ser escrito o caracter, tipo um gotoxy().

11

Display LCD

3.3 - TABELAS DE ENDEREOS DOS CARCTERES NA CGRAM


Os caracteres especiais previamente programado, durante a inicializao, podem ser utilizados a qualquer tempo como se fossem
caracteres normais, lembrando que os endereos bases em hexadecimal para gravao dos caracteres especiais, na maioria dos
mdulos LCD, so respectivamente: 40, 48, 50, 58, 60, 68, 70 e 78. Cada caracter especial ocupa 8 (oito) endereos.

RS

R/W

Endereo 50

Dado em Binrio

50

51

52

10

53

10

54

55

56

57

HEXA

0E
x

x
x

50

x
x

11

15
0E
10
00*

Tabela 7 - Caracter especial {} na CGRAM

Isto significa que para utilizarmos o caracter gravado no endereo base 50, durante a inicializao ou reset do sistema, teremos
que escrevermos 8 bytes entre os endereos 50 e 57, para construirmos o caracter. Para ilustrar este procedimento, supor que
queiramos construir o caracter {} no endereo base 50. Neste caso, devemos construir o mapa deste caracter especial como
mostrado na Tabela 7 (supondo estar trabalhando com matriz 7x5 e com auto incremento de endereo a cada escrita). Observe
que o ltimo endereo sempre ser 00, pois esta posio sempre ocupada pelo cursor.

3.4 - INICIALIZAO DOS MDULOS LCD


Toda vez que alimentamos o mdulo LCD deve ser executado o procedimento de inicializao, que consiste no envio de uma
seqncia de instrues para configurar o modo de operao para execuo de um dado programa de interfaceamento. Em muitos
display este procedimento ocorre automaticamente, dentro de condies especficas que envolve temporizaes mnimas referente
a transio do nvel lgico 0 para 1, ao ligarmos a fonte. Em caso de dvidas, recomendamos o envio destas instrues aps o
reset do sistema.

3.4.1 - Inicializao para sistemas 8 bits de dados (5 instrues)


Entre as duas primeiras instrues recomendamos um delay de 15 mS. As demais instrues podem ser escritas aps checar o
Busy Flag.

12

MDULO LCD
1 linha - Matriz 7x5 e 8x5

1
30

1 linha - Matriz 10x5

34

2 linha - Matriz 7x5 e 8x5

38

15m
S
15m
S
15m
S

Instrues em Hexadecimal (8 bits)


2
3
4
30
06
0E
15m
BF
S
34
06
0E
15m
BF
S
38
06
0E
15m
BF
S

BF

5
01

BF

01

BF

01

Display LCD

3.4.2 - Inicializao para sistemas 4 bits de dados (5 instrues)


Entre as quatro primeiras instrues recomendamos um delay de 15 mS. As demais instrues podem ser escritas aps checar o
Busy Flag. Estes bits (nible) devem estar conectados aos pinos 11, 12.13 e 14.

MDULO LCD
1 linha - Matriz 7x5 e 8x5
1 linha - Matriz 10x5
2 linha - Matriz 7x5 e 8x5

1
3
3
3

2
3
3
3

3
3
3
3

Instrues em Hexadecimal (4 bits)


4
5
6
7
8
9
10
2
2
0
0
8
0
1
2
2
4
0
8
0
1
2
2
8
0
8
0
1

11
0
0
0

12
1
1
1

13

Display LCD

04. ROTEIRO PARA PROGRAMAO


A seguir passaremos a descrever um resumo dos procedimentos para utilizao de um mdulo ou display LCD:
1. Ao energizar o mdulo ajuste o potencimetro de controle do brilho ou contraste at obter a visualizao da matriciao na
primeira linha para mdulo de duas linhas ou at a matriciao de meia linha para mdulos de uma linha.
2. Alguns mdulos de uma linha s funcionam com a instruo 38 ao invs de 30, conforme instrues de inicializao.
3. O sinal de Enable (pino 6) dever ser gerado conforme a temporizao mostrada na Figura 2. Os cdigos de dados ou de
instrues s sero processados pelo processador do mdulo aps a descida do sinal do Enable.
4. Para ajustar a velocidade de comunicao entre a CPU do usurio e o mdulo LCD existem duas possibilidades:
Intercalar uma rotina de atraso de aproximadamente 15 mS entre as instrues.
Fazer a leitura do Busy Flag antes do envio de cada instruo e s enviar quando o mesmo for 0. Neste caso, a nica
exceo ser durante a inicializao.
5. Durante a inicializao enviar a seqncia correta das instrues de inicializao conforme item 3.4
6. Para programar caracteres na CGRAM, faa inicialmente o endereamento da mesma.
7. Aps a escrita de dados na CGRAM envie a instruo 01, para posicionar o cursor.
8. Para escrever os caracteres especiais previamente gravados na CGRAM, utilize os cdigos de 00 at 07 correspondente aos
endereos bases de 40, 48 at 78 em hexa.
9. Comandos teis:

14

FIXAO DAS CONDIES DE UTILIZAO


1 linha 5x7 (8 bits)
2 linha 5x7 (8 bits)
1 linha 5x10 (8 bits)
1 linha 5x7 (4 bits)
2 linha 5x7 (4 bits)
1 linha 5x10 (4 bits)

Instruo
30H
38H
34H
20H
28H
24H

CONTROLE DISPLAY
Display aceso c/ cursor fixo
Display aceso c/ cursor intermitente
Display aceso sem cursor
Display apagado

Instruo
0EH
0FH
0CH
08H

MODO DE OPERAO
Escreve deslocando a mensagem para esquerda (cursor fixo)
Escreve deslocando a mensagem para a direita (cursor fixo)
Escreve deslocando o cursor para a direita
Escreve deslocando o cursor para a esquerda

Instruo
07H
05H
06H
04H

Display LCD

OUTROS COMANDOS TEIS


Limpa display e retorna o cursor para o inicio
Retorna o cursor para o inicio (sem alterar a DDRAM)
Desloca somente o cursor para a direita
Desloca somente o cursor para a esquerda
Desloca o cursor + mensagem para a direita
Desloca o cursor + mensagem para a esquerda
Desloca o cursor para posio inicial da segunda linha
Desloca o cursor para posio inicial da primeira linha

Instruo
01H
02H
14H
10H
1CH
18H
C0H
80H

CGRAM (caracteres especiais)


Endereo inicial para construir caracteres especiais
Para escrever o primeiro caracter (previamente construdos)
Para escrever o ltimo caracter (previamente construdos)

Instruo
40H
00H
07H

Obs: Aps o endereamento da CGRAM, o cursor se desloca para a primeira posio da segunda linha (ou metade), portanto
recomendado enviar a instruo 01 ou limpa display e cursor home.

15

Display LCD

05. CUIDADOS ESPECIAIS COM MDULOS LCD

5.1 - MANUSEIO

Somente retire o mdulo de sua embalagem protetora imediatamente antes de sua instalao
No guarde os mdulos em recintos de alta temperatura e alta umidade. A temperatura de armazenamento dever estar
compreendida entre 5 e 30 oC.
O LCD coberto por uma lmina plstica polarizada a qual no pode ser riscada. Cuidado em seu manuseio. Para a limpeza
da lmina utilize cotonetes embebido em benzina. No utilize outros tipos de solventes.
Observe cuidadosamente os procedimentos de controle anti-esttico quando manusear os mdulos. Eles incorporam circuitos
integrados CMOS LSI os quais so sensveis descarga eletrosttica. No toque nos terminais do conector, trilhas do circuito
impresso e/ou terminais do CI.

5.2 - INSTALAO

Nunca desmonte o mdulo


Use uma estao de solda aterrada para soldagem de conectores ou terminais.
montador dever tambm ser convenientemente aterrado.
Sempre que o projeto o permita, instale o mdulo atrs de uma janela protetora de plstico ou vidro.
Somente retire a fita adesiva que protege a lmina plstica frontal imediatamente antes de seu uso.

5.3 - OPERAO

16

Nunca instale ou desconecte o mdulo com sua alimentao ligada.


Sempre opere os mdulos respeitando sua gama de temperatura de operao.
Observe cuidadosamente os valores das tenses de alimentao e os nveis dos sinais de controle.
Ajuste a tenso no pino 3 (V0) para obter o contraste mais conveniente para uma dada aplicao.

Display LCD

06. EXEMPLO DE PROGRAMAO


Baseado no hardware da Figura 3, eaborar um programa em assembler para o 8031 que escreva no mdulo LCD a seguinte
mensagem: Vila Nova.
;=======================================================================
; Programa: Exemplo para manuseio de display ou modulo LCD
; Autor: Ilton L. Barbacena
; Data: Out/96
; Compilador: ASM51.EXE / versao shareware para 8051 / $mod51
; versao: 1.0
; Descricao:
Este programa grava a mensagem "Vila Nova"
;
no display LCD 2x20 (duas linha de 20 caracteres).
;
Os pinos de dados do mudulo LCD estao conectados
;
diretamente no barramento de dados da CPU, conforme
;
Figura 3 da apostila sobre LCD.
;=======================================================================
$mod51
lcd_wr_inst equ 4000H
lcd_wr_dado equ 4001H
lcd_rd_inst equ 4002H
lcd_rd_dado equ 4003H
;========================================================================
; Programa principal
;========================================================================
ORG 0H
MOV SP,#50H
MOV TMOD,#11H
CLR EA
CALL inicia_lcd
MOV R7,#0FFH
loop:

; TIMER1 / TIMER0 no modo 1


; desabilita todas as interrupcoes

INC R7
MOV A,R7
MOV DPTR,#mensagem
MOVC A,@A+DPTR
CJNE A,#0FFH,cont
JMP fim

; le caracter da mensagem
; testa se fim da mensagem

cont:

CALL wr_dado
CALL espera
JMP loop

; escreve o conteudo de acumulador no LCD


; aguarda busy flag

fim:

JMP fim

; fim do programa

17

Display LCD

;=======================================================================
; Rotinas chamadas pelo Programa Principal
;=======================================================================
ORG 100H
inicia_lcd:
MOV A,#38H
CALL wr_inst
CALL tempo
MOV A,#38H
CALL wr_inst
CALL tempo
MOV A,#06H
CALL wr_inst
CALL espera
MOV A,#0EH
CALL wr_inst
CALL espera
MOV A,#01H
CALL wr_inst
CALL espera
RET
espera:
CALL rd_inst
RLC A
JC espera
RET
wr_inst:

; rotina de inicializacao
; 2 linhas / matriz 7x5
; delay de 15mS
; 2 linhas / matriz 7x5
; delay de 15mS
; cursor com autoincremento para direita
; busy flag
; liga display / cursor
; busy flag
; limpa display / cursor home
; busy flag

; rotina para aguardar busy flag


; ler busy flag e retorna em A
; bit7=BF vai para o carry
; se BF=1 => verifica novamente

; escreve a instrucao em A no LCD


MOV DPTR,#lcd_wr_inst
MOVX @DPTR,A
RET

wr_dado:

; escreve o dado em A no LCD


MOV DPTR,#lcd_wr_dado
MOVX @DPTR,A
RET

rd_inst:

; le o Busy Flag e o contador de endereco


MOV DPTR,#lcd_rd_inst
MOVX A,@DPTR
RET

rd_dado:
MOV DPTR,#lcd_rd_dado
MOVX A,@DPTR
RET

18

; retorna em A

; le dado / de qual endereco?


; depende da ultima operacao no LCD
; retorna em A

Display LCD

;=========================================================
; Rotina de tempo: 15 mS / clock 12 MHz => 50.000 ciclos
;=========================================================
tempo:
MOV DPTR,#15536
MOV TH1,DPH
MOV TL1,DPL
SETB TR1
JNB TF1,$
CLR TR1
CLR TF1
RET
mensagem:

; (65536-50000)

; dispara timer1
; aguarda estouro => 50.0000
; prepara para proxima chamada

; mensagem a ser escrita no LCD


DB 'Vila Nova', 0FFH
END

; obrigatorio

Exerccio para praticar:


Repetir o exerccio anterior, porm com a mensagem Escola Tcnica. Construir o {} na CGRAM. Lembre-se que apenas os
cdigos ascii so caracteres vlidos para o LCD (verificar a tabela no manual do fabricante).

19

Você também pode gostar