display lcd

6
O display de LCD é largamente utilizado em diversos aparelhos eletro- eletrônico com a finalidade de mostrar resultados preliminares ou informações que auxiliem no manejo do aparelho. Para colocá-lo em funcionamento, primeiro precisamos configurá-lo, ou seja, precisamos dizer ao display como vamos transferir os dados para ele (8 ou 4 bits), quantas linhas vamos utilizar, se a mensagem deve ficar fixa ou rolar, se a escrita será da esquerda para direita ou da direita para esquerda, ou seja, todas essas configurações são necessárias antes de escrever qualquer mensagem. O datasheet do display traz essas informações, a seguir serão apresentadas algumas delas e como podemos fazer. Outro detalhe importante quando se trabalha com este tipo de display, é a temporização. Devemos ter um cuidado especial com este ponto, pois uma temporização equivocada inviabilizará o funcionamento do mesmo (não danificará, mas também não funcionará). Está disponível um javascript que simula um display de LCD. Abra o arquivo LCD_APLICATIVO.htm. Em primeiro lugar, vamos conhecer a pinagem do display LCD 16x2. Pinos de dados: D7 - D6 - ...- D1 - D0 (8bits)- os pinos de dados são usados para enviar as palavras de configurações e os dados (caracteres). Pinos de controle: EN (6), RS (4), R/W (5) - o pino EN informa ao display de LCD quando o dado está pronto para ser lido. O pino RS é usado para diferenciar se a palavra que foi enviada ao LCD é de configuração ou caractere. Pinos de alimentação: Vcc (2) e GND (1). Pino de controle de contraste: VO (3) - este pino permite alterar o contraste do display. Pinos de iluminação do fundo - backlight: A (16), K (15) - nem todos os displays possuem iluminação de fundo. Circuito eletrônico do LCD Configuração do display de

Upload: wilsonawj7733

Post on 29-Jun-2015

974 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Display LCD

O display de LCD é largamente utilizado em diversos aparelhos eletro-eletrônico com a finalidade de mostrar resultados preliminares ou informações que auxiliem no manejo do aparelho.

                           Para colocá-lo em funcionamento, primeiro precisamos configurá-lo, ou seja, precisamos dizer ao display como vamos transferir os dados para ele (8 ou 4 bits), quantas linhas vamos utilizar, se a mensagem deve ficar fixa ou rolar, se a escrita será da esquerda para direita ou da direita para esquerda, ou seja, todas essas configurações são necessárias antes de escrever qualquer mensagem. O datasheet do display traz essas informações, a seguir serão apresentadas algumas delas e como podemos fazer.

                           Outro detalhe importante quando se trabalha com este tipo de display, é a temporização. Devemos ter um cuidado especial com este ponto, pois uma temporização equivocada inviabilizará o funcionamento do mesmo (não danificará, mas também não funcionará).

                           Está disponível um javascript que simula um display de LCD. Abra o arquivo LCD_APLICATIVO.htm.

                   Em primeiro lugar, vamos conhecer a pinagem do display LCD 16x2.

Pinos de dados: D7 - D6 - ...- D1 - D0 (8bits)- os pinos de dados são usados para enviar as palavras de configurações e os dados (caracteres).

Pinos de controle: EN (6), RS (4), R/W (5) - o pino EN informa ao display de LCD quando o dado está pronto para ser lido. O pino RS é usado para diferenciar se a palavra que foi enviada ao LCD é de configuração ou caractere.

Pinos de alimentação: Vcc (2) e GND (1). Pino de controle de contraste: VO (3) - este pino permite alterar o contraste do display.

Pinos de iluminação do fundo - backlight: A (16), K (15) - nem todos os displays possuem iluminação de fundo.

Circuito eletrônico do LCD

Configuração do display de LCD

Page 2: Display LCD

Instrução RS R/W D7 D6 D5 D4 D3 D2 D1 D0 Descrição

Conf. Função 0 0 0 0 1 DL N F 0 0

Esta instrução é a mais importante, pois configura o display com relação ao número de bits, número de linhas e tamanho do caractere.

DL: 0 => 4 bits ou DL: 1 => 8 bits.

N: 0 => 1 linha ou N: 1 => 2 linhas, para display de 4 linhas, o N: 1.

F: 0 => 5x7 dots ou F: 1 => 5x10 dots.

Normalmente se usa: DL= 1, N=1 e F=0, ou seja, (00111000)b => 38h.

OBS.: em alguns displays é necessário enviar essa informação três vezes para o display.

Ctrl do display 0 0 0 0 0 0 1 D C B

controle do display  - D: 0 => off ou D: 1 => on;

controle do cursor - C: 0 => cursor desligado ou C: 1 => cursor ligado;

cursor piscante, mesmo que o cursor esteja desligado, toda a matriz ficará piscando - B: 0 => não piscante ou B: 1 => piscante.

Normalmente se usa: D= 1, C=1 e B=0, ou seja, (00001110)b => 0Eh.

Deslocamento

cursor

0 0 0 0 0 0 0 1 I/D S este comando controla o deslocamento do cursor no display de LCD. O cursor pode deslocar da esquerda para direita - incremento(I/D:1) ou da direita para esquerda - decremento (I/D:0). Além disso, podemos configurar o display a função scroll, ou seja, a medida que se escreve a mensagem vai se deslocando, na realidade o cursor fica sempre parado, para isso, S:0 scroll desligado e S:1 scroll ligado.

Page 3: Display LCD

Normalmente se usa: I/D= 1 e S=0 , ou seja, (00000110)b => 06h.

Retorno do cursor 0 0 0 0 0 0 0 0 1 0

este comando faz o cursor retornar para a primeira posição do display de LCD.

Limpar o display 0 0 0 0 0 0 0 0 0 1

este comando limpa tudo que foi escrito no display de LCD.

Código de configuração = 01h

Posição de escrita de um

caractere0 0 1 X X X X X X X

O display de LCD é uma memória SRAM, portanto antes de enviar um caractere  devemos escolher a posição em queremos escrever, no display de LCD funciona da mesma forma. Além disso, quando chega no final do display, é necessário a troca de linha, isto também precisa ser feito. A figura a seguir mostra os valores dos XX..X’s para cada posição do display, lembre-se que o bit mais significativo (D7) sempre é igual a 1 (um). A seguir é mostrado um esxemplo.

escrita de um caractere no

LCD1 0 X X X X X X X X

Note que na configuração o pino RS ficava em nível lógico “0”, mas durante a escrita de um caractere o pino RS ficará em nível lógico “1”. Os X’s correspondem ao código ASCII do caractere - por exemplo, o número “0” é 30h, o caractere “A”é 41h, e assim por diante. Recomendo que olhe nos datasheets de displays que trazem a lista completa de caracteres válidos e o seu respectivo código ASC.

                       Esta figura mostra o endereço base de cada posição de um displays 16x2 ou 16x4. O endereço final é formado pelo bit mais significativo igual a “1”, seguido do endereço base.

Page 4: Display LCD

                       Vamos supor que o display usado é o 16x2 e queremos escrever na quinta posição da esquerda para a direita da primeira linha, portanto o valor dessa posição é 04H, porém não é o endereço final, pois o bit mais significativo deve ser “1”, então vamos ver o que acontece:

D7 D6 D5 D4 D3 D2 D1 D0 endereço em hexa

1 0 0 0 0 1 0 0 84h

  04h Endereço final

                       Por exemplo, se queremos trocar o display para a segunda linha, primeira posição, então a composição do endereço se dará com o valor 40h. O endereço que deve ser enviado para o display é o seguinte:

D7 D6 D5 D4 D3 D2 D1 D0 endereço em hexa

1 1 0 0 0 0 0 0 C0h

  40h Endereço final

                     O diagrama de tempo para escrita de um comando deve seguir o esquema abaixo, note que os tempos indicados são os mínimos. A maioria dos comandos leva 40us para ser executado, mas por exemplo, limpar o display, leva em torno de 1,6ms. Portanto é aconselhado adotar um tempo maior entre o envio de instruções. Geralmente eu adoto nos meus projetos um intervalo de 5us para o pulso EN (diagrama está indicado 450ns) e de 5ms entre uma borda de subida do EN e a próxima borda de subida (no diagrama está indicado 1us - isto porque o comando limpa display leva 1,6ms)

                     Note que a inicialização consiste em enviar para o display os código já

Page 5: Display LCD

mencionados anteriormente, como 38h, 06h, 0Eh e 01h. Cada pulso de EN deve ser da ordem de 5us e entre um comando e outro, um delay de 5ms.

                       O ciclo de escrita de um caractere é muito semelhante ao da escrita de um comando, com excessão do sinal RS que deverá ficar em nível lógico “1”, indicando que é a escrita de um caractere.

                       No código acima, será escrito o caractere A e depois o B. Existem outras formas de escrever uma mensagem, por exemplo, usando o DPTR.

                       Você poderá testar todas essas funções usando um aplicativo java que simula o funcionamento de um display de LCD 16x2, recomendo que baixe e execute o arquivo lcd_aplicativo.html.