Download - LCD Inteligente - UTFPR
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
LCD Inteligente
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• LCD – Display de Cristal Líquido;• Dispositivo de saída, usado para mostrar informações do sistema;
• Os LCDs inteligentes possuem um controlador, que recebe as informações do sistema, processa e aciona os segmentos dos displays;
• Os controladores mais comuns usam o padrão Hitachi HD44780;
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• Estes LCDs podem ter diferentes configurações de caracteres, sendo as mais populares 16x2 (16 caracteres em duas linhas) e 20x4 (20 caracteres em 4 linhas);
Exemplo de LCD de 16x2
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• Pinagem:
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• O barramento possui:• 8 pinos de dados;• 3 pinos de controle;• 2 pinos de alimentação;• 1 pino para ajuste do contraste
do LCD.
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• O barramento de dados pode ser configurado, através do software de configuração, para ter 4 ou 8 bits;
• O barramento de controle possui 3 sinais:
• EN (enable);• RS (register selection)• R/W (read/write);
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• Os três pinos de controle permitem a seguinte combinação de operações:
EN RS R/W Operação
0 0 0 nenhuma operação
1 0 0 Escrita de instrução
1 0 1 Leitura de instrução
1 1 0 Escrita de dados
1 1 1 Leitura de dados
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• A configuração inicial do LCD define o seu modo de operação, como por exemplo, se o barramento de dados será de 4 ou de 8 bits;
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• Como o LCD é um dispositivo muito lento, é necessário gerar períodos de espera entre um comando e outro. Normalmente um tempo de ~5ms é suficiente para os vários tipos de displays;
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• Um exemplo de configuração inicial, para um barramento de dados de 8 bit, 2 linhas e pode ser:(1) Esperar 15ms após o LCD ser ligado;(2) Colocar o pino EN em 1;
(3) Colocar o pino RS em 0;
(4) Escrever a instrução 0x38 no barramento de dados;
(5) Colocar o pino EN em 0;
(6) Esperar 5ms;
(repetir 3 vezes)
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
(7) Colocar o pino EN em 1;(8) Colocar o pino RS em 0;
(9) Escrever a instrução 0x0E no barramento de dados;
(10) Colocar o pino EN em 0;
(11) Esperar 5ms;
(12) Colocar o pino EN em 1;
(13) Colocar o pino RS em 0;
(14) Escrever a instrução 0x01 no barramento de dados;
(15) Esperar 5ms;
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR (16)Colocar o pino EN em 1;
(17) Colocar o pino RS em 1;
(18) Escrever o dado (código ASCII do caracter) no barramento de dados;
(19) Colocar o pino EN em 0;
(20) Esperar 5ms;
(21) Repetir os passos 16 a 20 para cada caracter a ser escrito;
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
Comandos básicos do LCD: Comando de configuração:
DL = nº de bits do barramento: DL = 0 4 bits;→ DL = 1 8 bits;→
D7 D6 D5 D4 D3 D2 D1 D0
0 0 1 DL N F X X
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
N = nº de linhas a serem usadas no LCD: N = 0 1 linha;→ N = 1 2 linhas;→
F = configuração da matriz de caracteres: F = 0 5x7 pixels;→ F = 1 5x10 pixels;→
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
Comando de controle do display:
D: define o estado do display: D = 0 desativado (o conteúdo da →memória não é apagado);
D = 1 ativado;→
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 1 D C B
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
C: define se o cursor aparece ou não no display: C = 0 cursor não aparece;→ C = 1 cursor aparece;→
B: define se o cursor pisca ou não: C = 0 cursor não pisca;→ C = 1 cursor pisca;→
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
Comando para limpar o display:D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 1
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
Comando de configuração do modo de entrada:
I/D: incrementa ou decrementa o endereço da RAM interna (do LCD):
I/D = 0 decrementa;→ I/D = 1 incrementa;→
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 1 I/D S
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
S: controla o deslocamento dos caracteres no display: S = 0 os caracteres não se →deslocam;
S = 1 os caracteres se deslocam →para a direita, se I/D=0 ou para a esquerda, se I/D=1;
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
• Existem ainda outros comandos, como por exemplo:• Comando de retorno;• Comando de deslocamento do cursor;
• Comando para ler o “busy flag”;• Comando de manipulação de memória (permite criar alguns novos caracteres personalizados);
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
Exemplo de como ligar o LCD ao 8051 (barramento de 8 bits):
P3.2P3.1P3.0
8051
P1.0~P1.7
ERSR/W
LCD
DB0~DB7
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
Exemplo de como ligar o LCD ao 8051 (barramento de 4 bits):
P3.2P3.1P3.0
8051
P1.0~P1.3
ERSR/W
LCD
DB4~DB7
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
Exercício:1. Desenvolva um programa em assembly para o microcontrolador 89S52 para acionar um LDC inteligente e apresentar a mensagem:
“Olá 89S52!”
Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR
LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR
Exercício:2. Desenvolva um programa em assembly para o microcontrolador 89S52 para acionar um LDC inteligente e fazer a varredura de um teclado matricial. O valor lido no teclado deve ser apresentado no display.