lcd inteligente - utfpr

24
Gabriel Kovalhuk Gabriel Kovalhuk DAELN / UTFPR DAELN / UTFPR LCDs Inteligentes LCDs Inteligentes DAELN / UTFPR DAELN / UTFPR LCD Inteligente

Upload: others

Post on 17-Jul-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LCD Inteligente - UTFPR

Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR

LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR

LCD Inteligente

Page 2: LCD Inteligente - UTFPR

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;

Page 3: LCD Inteligente - UTFPR

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

Page 4: LCD Inteligente - UTFPR

Gabriel KovalhukGabriel KovalhukDAELN / UTFPRDAELN / UTFPR

LCDs InteligentesLCDs InteligentesDAELN / UTFPRDAELN / UTFPR

• Pinagem:

Page 5: LCD Inteligente - UTFPR

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.

Page 6: LCD Inteligente - UTFPR

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);

Page 7: LCD Inteligente - UTFPR

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

Page 8: LCD Inteligente - UTFPR

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;

Page 9: LCD Inteligente - UTFPR

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;

Page 10: LCD Inteligente - UTFPR

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)

Page 11: LCD Inteligente - UTFPR

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;

Page 12: LCD Inteligente - UTFPR

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;

Page 13: LCD Inteligente - UTFPR

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

Page 14: LCD Inteligente - UTFPR

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;→

Page 15: LCD Inteligente - UTFPR

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

Page 16: LCD Inteligente - UTFPR

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;→

Page 17: LCD Inteligente - UTFPR

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

Page 18: LCD Inteligente - UTFPR

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

Page 19: LCD Inteligente - UTFPR

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;

Page 20: LCD Inteligente - UTFPR

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);

Page 21: LCD Inteligente - UTFPR

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

Page 22: LCD Inteligente - UTFPR

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

Page 23: LCD Inteligente - UTFPR

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!”

Page 24: LCD Inteligente - UTFPR

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.