M8 - Experiência 3 - Controle de um display LCD tipo caracter no modo paralelo 4 bits (dados)


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.

Assim não temos que nos preocupar com a operação interna de um display, mas 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).

Os LCD’s alfanuméricos possuem algumas subdivisões importantes e que valem a pena conhecê-las. Elas referem-se principalmente a quantidade de caracteres que cada um pode mostrar. Esta quantidade é geralmente demonstrada em “linhas x colunas”. Na tabela 1 podemos ver alguns padrões utilizados com suas divisões em relação a linhas e colunas

 Tabela 1 – Tipos de LCD alfanuméricos

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. Sempre que possível deve-se consultar os datasheets fornecidos pelo fabricante.

Existem duas formas para o controle de displays alfanuméricos: paralela e serial.

Na placa Super Step LAB, da Tato Equipamentos, foi disponibilizado as duas formas de controle para o display inserido na mesma.

 

Controle do display LCD no modo paralelo

O controle no modo paralelo é feito de maneira que o microcontrolador M8 possa interagir de maneira direta com o controlador do display, propriamente dito. Esta forma ocupa mais pinos de I/O, mas permite uma maior velocidade de atualização dos dados.

No modo direto, os displays 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ção). Na figura a seguir observamos a respectiva pinagem de um display tipo caracter.

Alguns display’s possuem mais que 14 pinos paras as ligações, que pode ser vista na figura abaixo. Os pinos excedentes geralmente são utilizados no controle do “Back Ligth”.  O “Back Ligth” nada mais é que um conjunto de LEDs posicionados na parte de trás do display. Quando “ligados” permitem a visualização dos dados mesmo no escuro. Todo aparelho celular possui Back Ligth em seu display.

 

Display LCD e sua pinagem

É importante salientar que a maioria dos back ligth disponíveis nos displays tem um consumo de corrente alto e não devem ser ligados diretamente nos pinos de I/O de um microcontrolador. Isso queimaria a porta I/O e até mesmo o próprio microcontrolador. Se houver a necessidade de utilizar o circuito back ligth use um circuito drive conforme demonstrado na figura abaixo.

 

Drive para back light

Os displays com quatro ou mais linhas devem ser tratados como uma “união” de dois ou mais displays de duas linhas. Estes geralmente 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. Porém já é possível encontrar displays de quatro linhas e apenas um pino de habilitação. Neste caso a mudança de linha é feita através de um comando específico. Se você possuí um display deste tipo consulte o manual do fabricante para saber quais são estes comandos.

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 no display (não entraremos em maiores detalhes sobre isso, pois foge ao propósito desta dica).

Na tabela 2 temos um conjunto de instruções compatíveis com o display fornecido na placa Super Step LAB. 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 2 – Comandos para o controle de um LCD no modo paralelo

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

0CH

Inativo

0

0

1

0AH, 08H

Limpeza do LCD

- Limpa o display

- Retorna cursor p/ 1ª linha/coluna

0

0

1

01H

Retorno

- Retorno do cursor à 1ª linha

0

0

1

02H

Controle do Cursor

Ativo, ligado e fixo

0

0

1

0EH

Inativo

0

0

1

0CH

Alternado

0

0

1

0FH

Deslocamento à esquerda

0

0

1

10H

Deslocamento à direita

0

0

1

14H

Retorno

0

0

1

02H

Piscante

0

0

1

0DH

Sentido do deslocamento do cursor na entrada de um novo caractere

À esquerda

0

0

1

04H

À direita

0

0

1

06H

Sentido do deslocamento da mensagem na entrada de um novo caractere

À esquerda

0

0

1

07H

À direita

0

0

1

05H

Deslocamento da mensagem (sem entrada de novos caracteres)

À esquerda

0

0

1

18H

À direita

0

0

1

1CH

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. Para conhecer mais sobre todos os comandos possíveis de um determinado display é sempre aconselhável uma consulta ao datasheet do fabricante do mesmo.

Observando a tabela 2 dá para notar que para enviar um determinado comando para o display o pino RS deve ser levado ao estado lógico “0” e sempre que desejamos enviar um caractere a ser escrito o mesmo pino deve ser 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.

Um outro detalhe sobre o controle no modo paralelo diz respeito ao número de bits que podem ser utilizados para tal. Para permitir uma economia no número de I/Os os displays LCDs alfanuméricos permitem a comunicação através do seu barramento de dados com quatro bits ao invés de oito. As linhas de controle permanecem inalteradas. A experiência que será realizada a seguir, demonstrará o controle no modo paralelo utilizando quatro bits na linha de dados.

 

Controle de LCD com M8 no modo paralelo utilizando quatro bits de dados.

A placa Super Step LAB Fácil possui um LCD alfanumérico com 16 colunas e duas linhas (16 x 2) que pode ser configurado para trabalhar tanto no modo paralelo (4 bits apenas) como no modo serial. Para usá-lo no modo paralelo o usuário deverá colocar todos os segmentos (são oito no total) da chave DIP, próxima ao display, na posição OFF.

A ligação do LCD, para o modo paralelo, na placa fica no barramento ao lado do display e contém os seguintes pontos: B7, B6, B5, B4, EN, R/W e RS.

Ligue o barramento de controle paralelo do LCD ao barramento do microcontrolador M8 (à frente do mesmo) conforme a figura abaixo.


Circuito elétrico da experiência

 

 

Imagens da experiência 3 (clique sobre as mesmas para ampliar)

Você pode fazer o "download" do código fonte logo abaixo. As temporizações desta experiência foram obtidas através da função delayms(), presente na biblioteca do compilador C Tato. Por hora ainda não foi utilizado o timer de forma direta. Em breve vou inserir uma experiência que detalhará o uso do timer. Ela será útil para aqueles que desejam conhecer o funcionamento deste periférico. Esta ansioso para ver como é isso né?! Calma "Daniel San"!!! "Primeiro você lixa e pinta a cerca lado de dentro, agora você faz mesma coisa lado de fora né!!! Depois pronto para aprender karatê!!!" ehehehehe.

Downloads:
Clique aqui para obter o código fonte



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.