MICROCONTROLADORES PIC – PRÁTICA - PARTE 6
CONTROLE DE DISPLAYS LCD



DISPLAY DE CRISTAL LÍQUIDO – LCD




Um display de cristal líquido, apesar de parecer complexo, tem sua operação muito simples. A maioria dos displays encontrados no mercado possuem recursos internos para facilitar ao máximo o controle dos mesmos, proporcionando uma interface com qualquer microcontrolador inclusive o PIC16F84.

Assim não temos que nos preocupar com a operação interna de um display. Apenas com os comandos necessários para escrever um caractere, apagar uma linha, ligar o cursor, e muitos outros comandos possíveis (de acordo com cada modelo).

Na figura de abertura, temos alguns exemplos e tipos de LCD’s (Liquid Crystal Display) facilmente encontrados no mercado especializado (lojas de componentes eletrônicos). Estes LCD’s são do tipo “caracter” ou seja não são gráficos. Os displays gráficos têm seu controle mais complexo e feito de maneira diferente e não serão discutidos aqui. Por hora falarei apenas sobre o tipo “caracter”.

Os LCD’s tipo caracter possuem algumas subdivisões importantes e que valem a pena conhece-las. Elas referem-se principalmente a quantidade de caracteres que cada um pode “mostrar”. Esta quantidade é geralmente distribuída em “linhas x colunas”. Na tabela abaixo você poderá ver alguns padrões utilizados com suas divisões em relação a linhas e colunas

Tabela 1 - Padrões mais comuns dos LCDs tipo caracter

Indicação do fabricante

Número de linhas

Número de colunas

Total de caracteres

16 x 1

1

16

16

16 x 2

2

16

32

16 x 4

4

16

64

20 x 4

4

20

80

40 x 2

2

40

80


Sempre lembrando que o total de caracteres refere-se ao número total de elementos que podem ser demonstrados de uma única vez, inclusive “espaços” em branco.

Também é importante salientar que existem muitos outros padrões referentes ao número total de caracteres, sendo recomendável uma consulta aos fabricantes. Assim ficamos sempre “antenados” com as novidades do mercado.


OPERAÇÃO DE UM LCD

A operação de um display, como dito anteriormente, é extremamente simples. Eles possuem comandos específicos para cada operação desejada: leitura, escrita, configuração, etc. Estes comandos são passados através de uma linha de dados (pinos D0 a D7) de 8 bits (1 byte) e uma linha de controle composta por mais três pinos: EN (Enable), RD/WR (leitura/escrita) e RS (entrada de dados ou instruções). Na figura abaixo você pode observar um display e sua respectiva pinagem.



Alguns display’s possuem mais que 14 pinos. Os pinos excedentes geralmente são utilizados no controle do Back Ligth que nada mais é que um conjunto de LEDs posicionados na parte de trás do display. Quando “ligado” permite a visualização dos dados mesmo no escuro. Todo aparelho celular possui Back Ligth em seu display. Na figura abaixo você tem um pequeno circuito que pode ser usado para “ligar ou desligar” o Back Ligth. A polaridade deve ser respeitada para o funcionamento adequado.

Os displays com quatro ou mais linhas devem ser tratados como uma “união” de dois ou mais displays de duas linhas. Em alguns casos, estes displays possuem dois pinos de habilitação (EN) para selecionar qual conjunto de linhas será usado. Neste caso o pino 15 habilita as duas linhas superiores e o pino 16 as duas linhas inferiores. O pino “6” não é conectado.

Até aqui você já deve ter percebido que um “LCD” tem internamente um pequeno microcontrolador dedicado, que fará a interpretação dos “dados” recebidos e os transformará em “comandos” internos (não entrarei em maiores detalhes sobre isso, pois foge ao propósito deste artigo).

Na tabela abaixo você tem um conjunto de instruções para operação com displays. Esta tabela também apresenta qual deve ser o dado a ser enviado para o mesmo e o estado nos pinos de controle deste.

Tabela - Instruções de controle para um LCD

Instrução

Descrição

RS

RW

EN

Dado a ser inserido em D7-D0 (em hexadecimal)

Controle do display

Ativo sem cursor

0

0

1

0C

Inativo

0

0

1

0A, 08

Limpeza do LCD

- Limpa o display

- Retorna cursor p/ 1ª linha/coluna

0

0

1

01

Retorno

- Retorno do cursor à 1ª linha

0

0

1

02

Controle do Cursor

Ativo, ligado e fixo

0

0

1

0E

Inativo

0

0

1

0C

Alternado

0

0

1

0F

Deslocamento à esquerda

0

0

1

10

Deslocamento à direita

0

0

1

14

Retorno

0

0

1

02

Piscante

0

0

1

0D

Sentido do deslocamento do cursor na entrada de um novo caractere

À esquerda

0

0

1

04

À direita

0

0

1

06

Sentido do deslocamento da mensagem na entrada de um novo caractere

À esquerda

0

0

1

07

À direita

0

0

1

05

Deslocamento da mensagem (sem entrada de novos caracteres)

À esquerda

0

0

1

18

À direita

0

0

1

1C

Escrita de dados (caractere) no display

- Escreve um caractere no display na posição do cursor

1

0

1

Dado a ser escrito


Existem outros comandos, mas os mais importantes e mais utilizados foram passados nesta tabela. Se você tiver interesse em conhecer mais sobre todos os comandos possíveis de um determinado display recomendo uma consulta ao datasheet do fabricante do mesmo.

Observando a tabela acima você notará que para enviar um determinado comando para o display o pino RS é levado ao estado lógico “0” e para enviar um caractere a ser escrito o mesmo pino é levado ao estado lógico “1”. O pino “EN” habilita o display e deve ser colocado em “1” para habilitar e em “0” para desabilitar. O pino RD/WR deve ser colocado em “0” para escrever dados no display e em “1” para ler dados do mesmo.

Obs.: Quando cito estado lógico "1" e "0", estou me referindo a +VCC e GND, respectivamente, no circuito.


O CIRCUITO

Na figura abaixo temos o circuito para o exemplo proposto. A linha de dados do display foi ligada a porta “B” e as linhas de comando RS, RD/WR e EN a porta “A” do PIC. O circuito é muito próximo de todos os outros que demonstrei até o momento. Temos um cristal e dois capacitores de 33pF para o “clock” e um resistor de 330R para ajudar no Power on Reset do microcontrolador. O display utilizado em nossa montagem tem 2 linhas por 16 colunas (16x2). O trimpot de 10 k ajuda a regular o contraste do display.

A montagem pode ser feita em um pronto-o-board (matriz de contatos) ou mesmo em uma placa padrão. Uma placa de circuito impresso também pode ser confeccionada, e para isso você terá de desenvolver um lay-out apropriado. Para meu protótipo escolhi a primeira opção. Cada um escolhe o melhor método para suas mpntagens.


Para alimentar o circuito você poderá utilizar uma fonte qualquer de 5V com no mínimo 400mA de corrente. Se você quiser montar sua própria fonte, sugiro uma fonte simples como a demonstrada na figura abaiso que poderá alimentar este ou qualquer outro circuito de lógica digital e ou microcontroladores que necessitem de 5 V DC com uma corrente máxima de até 1 A.



Caso você não disponha do material para a fonte, poderá alimentar o circuito com um conjunto de quatro pilhas pequenas ou médias e um diodo em série com o mesmo. Veja na figura abaixo como isso pode ser feito.

Tome muito cuidado para não inverter os pinos de alimentação do microcontrolador e também do display. Ambos são muito sensíveis a tais “inversões” de polaridade. Siga atentamente o circuito elétrico fornecido.


O PROGRAMA

No final desta página você poderá fazer o download do código fonte para gravar e testar sua montagem. O programa foi comentado, visando facilitar a sua compreensão. A figura abaixo traz o fluxograma do programa para um melhor entendimento.

O programa inicia configurando o microcontrolador (direção dos pinos, variáveis, interrupções, etc). Depois o display é também configurado para sua operação e em seguida, o programa escreve uma mensagem. Após um tempo previamente determinado a mensagem é apagada no display e é iniciado um laço onde o alfabeto (“ABC”) é escrito até que um reset seja efetuado.

Baseado neste programa, você poderá modificar a mensagem a ser escrita, a seqüência de caracteres, a temporização, e muitas outras. Um bom exercício é acrescentar teclas que ao serem pressionadas mostrem diferentes mensagens.


CONCLUSÃO

O controle de “LCD’s” tipo caractere foi "desvendado". Agora você poderá incrementar seus projetos com displays LCD, permitindo que o microcontrolador envie mensagens comunicando-se com o “mundo exterior”. Ah, e não se esqueça: "Conceito é tudo!".


DOWNLOADS:

- Código fonte


Lista de materiais

Para o experimento

Semicondutores

CI1 – PIC16F84A-04/P – microcontrolador Microchip
CI2 – Display Cristal líquido 16x2 – 16 colunas por 2 linhas

Resistores

R1 – 330R (laranja, laranja, marrom)
R2 – trimpot 10K

Capacitores

C1, C2 – Capacitores 33pF cerâmicos


Diversos

X1 – cristal 4MHz
- chave “push-button” tipo normalmente aberta, matriz de contatos ou placa, fios para montagem, fonte de alimentação 5 volts, etc


Para Fonte

Semicondutores

CI1 – LM7805 – regulador de voltagem p/ 5 volts
D1, D2 – 1N4001 – diodos retificadores

Capacitores

C1 – capacitor 1000uF x 25V – eletrolítico
C2 – capacitor 100uF x 16V – eletrolítico

Diversos

T1 – transformador 9+9V x 1000mA
- placa para montagem, garras e fios para interligação, chave liga-desliga, caixa plástica, rabicho para rede CA, etc.




Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.