Você está na página 1de 10

Manual – ADP.

v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
1
Apresentação
O adaptador ADP.v01 é utilizado para facilitar a instalação de display Lcd 16x2 ou display
Lcd 20x4 nos CLP PIC28 ou CLP PIC40 através de um flat cable de 10vias de acordo com
a necessidade do cliente.

Sem dúvida, o display Lcd é um dos recursos mais interessantes quando utilizamos
microcontroladores. Isto porque podemos desenvolver IHM (Interface Homem Máquina)
agregando grande valor ao projeto.

A comunicação utilizando o ADP.v01 é feita em 4 vias de dados, de DB4 á DB7. Utilizando


os pinos RB0, RB1, RB2 e RB3 do portB do microcontrolador.

O pino RB4 é ligado no RS e o pino RB5 é ligado no Enable do display.

O pino R/W do display fica ligado direto ao terra. Desta forma, só é possível escrever no
Display Lcd.

Foto nr1 O adaptador possui um trimpot para ajuste do


contraste (pino VEE do display lcd), conforme
foto nr1.

O adaptador também possui um jumper para


controle do back light, conforme foto nr2.

Se for retirado o jumper o back light ficará


permanentemente desligado.
Foto nr2
Se ficar posicionado conforme a foto nr2, o back
light ficará ligado direto.

E se o jumper ficar posicionado na outra


extremidade o back light será controlado pelo
pino RB7 do microcontrolador, através de
software.

Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
2
Os displays já possuem internamente um microcontrolador que gerencia as funções dos
mesmos. Isto facilita bastante o desenvolvimento de projetos, pois o programador se
preocupa apenas em enviar os dados e a localização onde quer que os mesmos apareçam
no display.

Abaixo temos algumas informações importantes relativas aos dois Lcds que trabalhamos.

Tabela com os 32 caracteres do display 16x2 e seus endereços absolutos (em hexadecimal)
Coluna 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Linha 0 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
Linha 1 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF

Tabela com os 80 caracteres do display 20x4 e seus endereços absolutos (em hexadecimal)
Coluna 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Linha 0 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93
Linha 1 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3
Linha 2 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7
Linha 3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7

Pinos do display Lcd 16x2 com back light


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A K VSS VDD VEE RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7

Pinos do display Lcd 20x4 com back light


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
VSS VDD VEE RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 K A

Descrição de cada pino do Display Lcd


VSS - Gnd
VDD - Positivo (Alimentação - 5Vcc)
VEE - Ajuste do contraste
RS - Tipo de informação ( 0 = comando e 1 = dado )
R/W - Leitura de dados ("1") / Escrita de dados ("0")
E - Habilita leitura/escrita no barramento de dados
DB0 -
DB1 - Barramento de dados paralelo - A comunicação pode ser realizada
DB2 - pelas 8 vias de dados (DB0 á DB7) ou por 4 vias de dados (DB4 á
DB3 - DB7).
DB4 - .
DB5 - No adaptador ADP.v01 a comunicação é realizada por 4 vias de dados
DB6 - (DB4 á DB7).
DB7 -
K - Usados para ligação do back light (iluminação de fundo). Dependendo
A - do lote esses pinos podem vir invertidos

Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
3
Em seguida apresentaremos dois exemplos para se trabalhar com os Lcds.

Um em linguagem C, usando o compilador MikroC e outro em linguagem Assembly,


utilizando o compilador MPLab

No MikroC podemos utilizar um Lcd em dois modos:


- Modo 4 bits
- Modo 8 bits

Quando utilizamos o modo 8 bits, utilizamos um port para envio dos dados e para os sinais
de controle utilizamos alguns pinos de outro port.
Por exemplo: RB0 a RB7 para dados e RC0, RC1 e RC2 para sinais E, R/W e R/S.

Quando utilizamos o modo 4 bits, podemos utilizar somente um port para dados e controle
ou utilizar dois ports, um para dados e outro para controle.

No CLP PIC 40 e CLP PIC 28 utilizaremos o modo 4 bits usando o PortB para envio de
dados e também sinais de controle.

Temos então:

R/S = RB4, EN = RB5, R/W = RB6, dados = RB3, RB2, RB1 e RB0.

O comando lcd_config( ) inicializa o lcd e também configura os respectivos pinos de


dados/controle na qual o módulo lcd irá trabalhar.

Sintaxe:

lcd_config(&portX, R/S, EN, R/W, pin_dado, pin_dado, pin_dado, pin_dado)

Onde:
&portX = Port utilizado A, B, C ou D; (em nossa aplicação será o PortB)
R/S = pino utilizado para controle R/S;
EN = pino utilizado para controle EN; (enable)
R/W = pino utilizado para controle R/W;
Pin_dados = pinos utilizados para envio de dados

Para o nosso Clp Pic 28 ou Clp Pic 40 deverá ser configurado da seguinte forma:

lcd_config(&portb,4,5,6,3,2,1,0); - mas o pino R/W do Lcd ficará aterrado direto, desta


forma, será possível apenas escrever no Lcd.

Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
4
O comando lcd_cmd( ) envia comando para o Lcd. Você pode passar uma das constantes
pré-definidas para a função. A lista completa dos comandos disponíveis esta na tabela
abaixo.

Ex.:
lcd_cmd(lcd_clear);

Tabela: Comandos disponíveis


LCD Command Purpose
lcd_first_row Move cursor para 1ª. linha
lcd_second_row Move cursor para 2ª. linha
lcd_third_row Move cursor para 3ª. linha
lcd_fourth_row Move cursor para 4ª. linha
lcd_clear Limpa o display
lcd_return_home Move cursor para a 1ª. coluna da 1ª. linha
lcd_cursor_off Desliga o cursor
lcd_underline_on Liga o “underline” no cursor
lcd_blink_cursor_on Liga o modo piscante do cursor
lcd_move_cursor_left Move o cursor para a esquerda sem mover o texto
lcd_move_cursor_right Move o cursor para a direita sem mover o texto
lcd_turn_on Liga o visor do LCD
lcd_turn_off Desliga o visor do LCD sem perder os dados
lcd_shift_left Move o texto para a esquerda
lcd_shift_right Move o texto para a direita

O comando lcd_chr( ) Imprime um caractere na tela do Lcd a partir da linha e coluna


especificados.

Ex.:
lcd_chr(1,2,’a’);

Onde:
"1" = representa a linha em que será feito à impressão do caractere.
"2" = representa a coluna em que será feito à impressão do caractere.
’a’ = caractere a ser impresso no Lcd.

Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
5
O comando lcd_out( ) Imprime o texto na tela do Lcd a partir da linha e coluna
especificados.

Ex.:
lcd_out(1,2,"texto");

Onde:
"1" = representa a linha em que será feito à impressão do texto.
"2" = coluna a partir do qual será iniciada a impressão do texto.
"texto" = texto a ser impresso no Lcd.

Abaixo apresentamos um trecho de programa para um Lcd de 20 colunas x 4 linhas.

lcd_config(&portb,4,5,6,3,2,1,0);
lcd_cmd(lcd_cursor_off);
lcd_out(1,2,"vwsolucoes.com.br");
lcd_out(2,6,"Apresenta");
lcd_out(3,2,"comando basico p/");
lcd_out(4,2,"uso do Display Lcd");

Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
6
Agora faremos uma breve explanação de como utilizar o Lcd em linguagem Assembly com
o compilador MPLab.

Existem basicamente duas formas para se trabalhar com o Lcd, sendo elas:

- através da leitura da busy flag na qual indica o momento exato da finalização de uma
operação no lcd.
- através da utilização de rotinas de atraso que garante o término das operações internas
do módulo Lcd.

Como a proposta aqui é para utilização do adaptador ADP.v01, utilizaremos a


comunicação de dados em 4 vias e os pinos de controle da mesma forma como descritos
na programação em linguagem C.

Toda vez que alimentarmos um Lcd, devemos executar o procedimento de inicialização do


Lcd para que ele venha a funcionar. A seqüência seria:

1 – Aguardar 15ms
2 – Com RS em “0”, enviar 0x30 para o display (inicialização)
3 – Aguardar pelo menos 4ms
4 – Com RS em “0”, enviar 0x30 para o display (inicialização)
5 – Aguardar pelo menos 100us
6 – Com RS em “0”, enviar 0x30 para o display (inicialização)
7 – Aguardar pelo menos 40us
8 – Com RS em “0”, enviar B’00101100’ (comunicação por 4 vias)
9 – Aguardar pelo menos 40us
10 – Com RS em “0”, enviar B’00000001’ (limpar display e posicionar o cursor na 1linha / 1
coluna)
11 – Aguardar pelo menos 1,8ms
12 – Com RS em “0”, enviar B’00001100’ (liga o display sem cursor)
13 – Aguardar pelo menos 40us
14 – Com RS em “0”, enviar B’00000110’ (deslocamento automático do cursor p/ a direita)
15 – Aguardar pelo menos 40us

Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
7
Tabela de Comandos do LCD

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 OBSERVAÇÃO
0 0 0 0 0 0 0 0 0 1 Limpa display e retorna a 1 posição (1,53ms)
0 0 0 0 0 0 0 0 1 - Retorna cursor na 1 posição (1,53ms)
Estabelece sentido de deslocamento.
I/D=1 - cursor desloca-se para a direita após
uma operação de escrita ou leitura.
I/D=0 - cursor desloca-se para a esquerda
após uma operação de escrita ou leitura.
0 0 0 0 0 0 0 1 I/D SH SH=0 - desliga o deslocamento da
mensagem.
SH=1 - Liga o deslocamento da mensagem.
Serve para implementar as funções de insert
e backspace.
D=0 - Desativa visualização do display.
D=1 – Ativa visualização do display.
C=0 - Desliga visualização do cursor.
0 0 0 0 0 0 1 D C B C=1 - Liga visualização do cursor.
B=0 - Desliga o cursor piscante.
B=1 - Liga o cursor piscante.

SC=1 – Move mensagem.


SC=0 – Move cursor.
RL=1 – Move cursor ou mensagem para a
0 0 0 0 0 1 SC RL - - direita.
RL=0 – Move cursor ou mensagem para a
esquerda.

DL=1 – Via de dados de 8 bits (DB0 á DB7).


DL=0 – Via de dados de 4 bits (DB4 á DB7).
N e F = 00 - 1 linha com matriz de 7x5 +
cursor.
0 0 0 0 1 DL N F * * N e F = 01 - 1 linha com matriz de 10x5 +
cursor.
N e F = 1* - 2 linha com matriz de 7x5 +
cursor.
0 0 0 1 Endereço CG RAM Endereça a CG RAM
0 0 1 Endereço DD RAM Endereça a DD RAM
Contador de endereço usado tanto BF=1 - Leitura da busy flag.
0 1 BF BF=0 - Leitura do contador de endereço.
para DD RAM & CG RAM
1 0 Dados de escrita Escreve dados na CG ou DD RAM.
1 1 Dados de leitura Lê dados na CG ou DD RAM.

Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
8
A tabela a seguir mostra os códigos correspondentes ás instruções mais utilizadas e a sua
influencia na informação exibida no visor do Lcd.

Código da
Instrução Modo RS R/W
instrução
Display ativo sem cursor 0 0 0Ch
Display ativo com cursor 0 0 0Eh
Controle do display
Display piscando c/ cursor ativo 0 0 0Fh
Display inativo 0 08h
Limpa display e retorna cursor á 1
0 0 01h
posição da 1 linha.
Retorna cursor á 1 posição da 1 linha e á
0 0 02h
mensagem a sua posição original
à esquerda 0 0 10h
Sentido de deslocamento do cursor
à direita 0 0 14h
Sentido de deslocamento do cursor na à esquerda 0 0 04h
entrada de um novo caractere à direita 0 0 06h
Sentido de deslocamento da mensagem à esquerda 0 0 07h
na entrada de um novo caractere à direita 0 0 05h
Deslocamento da mensagem s/ a à esquerda 0 0 18h
entrada de um novo caractere à direita 0 0 1Ch
1 linha 80h
Endereço da primeira posição 0 0
2 linha C0h

A tabela a seguir apresenta os caracteres que podem ser exibidos no display e os


respectivos valores, em hexa, que podem ser enviados pela linha de dados do Lcd.

No CD que acompanha o Clp Pic 28 e/ou Clp Pic 40 tem um exemplo básico de programa
para escrever no Display Lcd 16x2 e Display Lcd 20x4, nas linguagens C e Assembly.

Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
9
Manual – ADP.v01
www.vwsolucoes.com
Copyright® 2011 – VW Soluções
10

Você também pode gostar