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.
- 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.
- 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.
- 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.
- 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.
- 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í ...
Vlw andré pela ajuda ( =
ResponderExcluirFoi útil ou não ? Estou aguardando o retorno dos leitores para mais informações a postar...
ResponderExcluirolá como posso mostrar imagens proveniente de um sensor tsl1401(linear array) em um display 128x64 destes ???
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirAndré , 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.
ResponderExcluirObrigado