Busque no blog

quinta-feira, 11 de outubro de 2012

Controlando Display GLCD de 128x64 pixels... Parte 2


Controlando Display GLCD de 128x64 pixels...
Modelo ERM12864-2SA


                          Parte 2                




INSTRUÇÃO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 FUNÇÃO












Display ON/OFF 0 0 0 0 1 1 1 1 1 0/1 Liga e desliga o display. O esta-











do interno e a memória RAM











não são afetadas : 0-OFF ; 1-ON
Define endereço 0 0 0 1

Endereço Y (0~63)


Define o endereço Y no conta-











dor de endereço Y
Define página 0 0 1 0 1 1 1
página
Define o endereço X no
( endereço X )







( 0 ~ 7)
registro de endereço X
Leitura de estado 0 1 O 0 O R 0 0 0 0 Leitura de estado



C
N E



Ocupado : 0 – livre.



U
/ S



1 – em operação



P
O E



ON/OFF 0 – DISPLAY ON



A
F T



1 – DISPLAY OFF



D
F




RESET 0 – NORMAL



O






1 – RESET
Escrita no display 1 0



Escrita de dados no display


Escreve os dados de DB0~DB7











na memória RAM do display.











Depois da instrução de escrita 0











endereço Y é incrementado au-











tomaticamente em 1 .
Leitura do display 1 1



Leitura dos dados do display


Lê os dados de DB0~DB7 vindos











da memória do display, para o











barramento.

Mapa de endereço da RAM de dados do display.



Considerações .

Uma das melhorias desse display é que não é preciso o uso de fonte negativa de tensão para acionar o display o que ajuda e muito na definição de projetos com o uso desse GLCD. A forma de posição dos pixels no GLCD é mostrada na figura a seguir . Observe que temos duas janelas em um GLCD e que cada janela possui oito páginas com 64 colunas de oito bits. Observe também que cada janela tem um controlador e que este é selecionado de acordo com os sinais CS1 e CS2.




Controlador 1 ( CS1 = 1 ; CS2 = 0 ) Controle 2 ( CS1 = 0 ; CS2 = 1 )





D0
Página 0 – 64 Bytes (colunas) x 8bits Página 0 – 64 bytes (colunas) x 8bits
D1
PÁGINA 1 PÁGINA 1
D2
PÁGINA 2 PÁGINA 2
D3
PÁGINA 3 PÁGINA 3
D4
PÁGINA 4 PÁGINA 4
D5
PÁGINA 5 PÁGINA 5
D6
PÁGINA 6 PÁGINA 6
D7
PÁGINA 7 PÁGINA 7







Cada linha de 64 bits cada linha de 64 bits


Devido perfil fino, baixo peso, baixo consumo de energia e fácil manipulação os displays gráficos de cristal líquidos são usados em uma variedade de aplicações, principalmente quando se deseja usar avisos ou dados em forma diferenciada das dos displays alfanuméricos. Por exemplo uma figura de um coração e números indicando seu estado. Outra aplicação importante seria a plotagem de valores gráficos de alguma medida. O importante é que se desejando emitir alguma figura gráfica o GLCD é ideal para isso.
Abaixo temos alguns valores de inicialização do GLCD que se pode usar em qualquer programa em um microcontrolador ou microcomputador para acionar o GLCD. Os valores estão em hexadecimal e seus significados logo a seguir.

  1. 0C0H (1100 0000 - binário ) - Especifica a linha inicial a ser usada de 0 até 63 de cada página. Aqui DB6~DB7 devem estar em nível lógico 1 para sinalizar que se deseja usar uma linha de início. Aqui usamos DB0~DB5 como zeros, sinalizando que queremos a primeira linha da página selecionada na coluna selecionada.
  1. 04Fh ( 0100 0000 – binário ) - Especifica o endereço da coluna Y e seleciona dentre as 64 possíveis colunas a serem usadas. Basta lembrar que esta coluna é automaticamente incrementada a cada instrução de escrita ou de leitura. Aqui DB0~DB5 são zerados para que a instrução 0C0H acima esteja na coluna zero.
  1. 0B8H ( 10111000 – binário ) - Especifica o endereço da página a ser usada. Temos a possibilidade de selecionar dentre 8 páginas possíveis. Aqui temos a página 0 com os valores de DB0~DB3 com valores de zeros.
  1. 03FH ( 0011 1111 – binário ) - Liga ou desliga o display. 03FH é o valor hexadecimal que liga o display e 03EH é o valor que desliga o display. Esta operação de ligar e desligar não afeta os bits de estado do display nem mesmo o conteúdo da memória RAM. O pino DB0 é o responsável por esta operação, com valor 0 é desligado o display e com valor 1 é ligado o display.
  1. Um exemplo é a figura a seguir. Usamos os valores de endereço Y de ( DB0~DB5 - 0100 0101 ), 69 em decimal, para colocarmos um pixel na coluna 5. Em DB0~DB2 , usamos o valor binário 011 ou 3 em decimal para definirmos a página 3 como o primeiro ponto do pixel. Na linha de início decidimos por escolher a linha 4 da página 3 na coluna 5 , com o valor binário 1100 0100 ou 0C4H em hexadecimal em DB0~DB7. Tudo na sequência mostrada acima. Como primeiro se deve ligar o display com o comando 0x3FH e reiniciar o display com um nível zero em RST passando para alto novamente, para apagar o conteúdo indesejado, basta seguir os passo acima descritos, logo após isso se vede decidir por escrever dados no display ou ler dados do display.

0 1 2 3 4 5 6 7 8 9 10 11 12 ~ 63
DB0















DB1















DB2















DB3















DB4














LINHA 4
DB5















DB6















DB7


















COLUNA
5













É isso aí ...

5 comentários:

  1. Foi útil ou não ? Estou aguardando o retorno dos leitores para mais informações a postar...

    ResponderExcluir
  2. olá como posso mostrar imagens proveniente de um sensor tsl1401(linear array) em um display 128x64 destes ???

    ResponderExcluir
  3. Este comentário foi removido pelo autor.

    ResponderExcluir
  4. André , acabei de encontrar o seu blog com informações a respeito desse lcd 128x64 , e meu primeiro contato com Arduino e a linguagem, gostaria de saber como faria para efetuar uma programação com esse lcd ex: ja fiz o codigo com o acionamento dos reles e servo como faria para que essa informação quando fosse acionada aparecesse no visor.

    Obrigado

    ResponderExcluir