Você está na página 1de 8

MCS51

Módulo 3 Prof. Celso

LCD
O LCD é um display de cristal líquido que possui dentro dele um
microcontrolador. Abaixo é mostrado a pinagem de um LCD:

Pinagem
Pino Descrição
1 Vss Terra (GND)
2 Vdd Vcc
3 V0 Tensão de ajuste de contraste
4 RS 1 – Dado 0 - Instrução
5 R/W 1 - Leitura 0 – Escrita
6 E Chip Select – habilita de 1Æ 0
7 D0 DADOS: LSB
8 D1
9 D2
10 D3
11 D4
12 D5
13 D6
14 D7 MSB - dados

15 A Anodo para LED backlight


16 K Catodo para LEd backlight

Ligação para ajuste do constraste:

44
MCS51
Módulo 3 Prof. Celso

Escrevendo no LCD

LCD

Porta Í Dado ou Instrução

Rotina
Habilitar Dados ou
Instrução

Rotina
Atraso

Dados Î é o que você quer mostrar no display.


Instruções Î não aparecem no display, servem para configurar o LCD.

Inicialização para sistemas com via de dados de 8 bits

- Fixação das condições de utilização: depende do lcd utilizado. Se tivermos um lcd


de 2 linhas 5x7 e 8 bits Î código 38h
- Controle do display: define como o cursor é mostrado. Ex, código 0Eh Î display
aceso com cursor fixo
- Modo de operação: modo como o cursor é deslocado. Ex: código 06h Î escreve
deslocando o cursor à direita.
- limpeza do display: código 01h.

Característica do Módulo Seqüência de Instruções em hexadecimal


1 linha – Matriz 7 x 5 (8 x 5) 30 , Δ , 30 , Δ , 06 , Δ , 0E , Δ , 01
1 linha – Matriz 10 x 5 34 , Δ , 34 , Δ , 06 , Δ , 0E , Δ , 01
2 linhas – Matriz 7 x 5 (8 x 5) 38 , Δ , 38 , Δ , 06 , Δ , 0E , Δ , 01

Δ = atraso de tempo de aproximadamente 15 milisegundos.

45
MCS51
Módulo 3 Prof. Celso

Exemplo de uma subrotina só para configurar o display:


Supondo que a porta P1 contenha os dados (ou instrução) para o LCD
e que a porta P3 tenha o controle dos pinos 4 (RS), 5(R/W) e 6 (E):

Instrução RS=0

Conf_display:

MOV P1,#38H ; display 2 lihas


LCALL habi_Inst ; habilita enviar instrução
MOV P1,#38H
LCALL habi_Inst ; habilita enviar instrução
MOV P1,#0EH ; display acesso com cursor fixo
LCALL habi_Inst ; habilita enviar instrução
MOV P1,#06H ; escreve deslocando à direita
LCALL habi_Inst ; habilita enviar instrução
MOV P1,#01H ; Limpa display
LCALL habi_Inst ; habilita enviar instrução

habi_Inst:
MOV P3,#02h ; criando borda
MOV P3,#00h ; de descida
LCALL ATRASO
RET

ATRASO: MOV R1,#14h


VOLTA: MOV R0,#0FAh
DJNZ RO, $
DJNZ R1, VOLTA
RET

46
MCS51
Módulo 3 Prof. Celso

Tabela de Códigos e Formação dos Caracteres

47
MCS51
Módulo 3 Prof. Celso

Esquema da placa do kit utilizado no laboratório:

48
MCS51
Módulo 3 Prof. Celso

Fixação das condições de utilização Instrução


1 linha 5x7 (8 bits) 30H
2 linha 5x7 (8 bits) 38H
1 linha 5x10 (8 bits) 34H
1 linha 5x7 (4 bits) 20H
2 linha 5x7 (4 bits) 28H

Controle do display Instrução


Display acesso com cursor fixo OEH
Display acesso com cursor intermitente 0FH
Display acesso sem cursor 0CH
Display apagado 08H

Modo de operação Instrução


Escreve deslocando a mensagem para a esquerda (cursor fixo) O7H
Escreve deslocando a mensagem para a direita (cursor fixo) 05H
Escreve deslocando o cursor para a direita 06H
Escreve deslocando o cursor para a esquerda 04H

Comandos úteis Instrução


Limpa display e retorna cursor para o início O1H
Retorna o cursor para o início (sem alterar a DDRAM) 02H
Desloca somente o cursor para a direita 14H
Desloca somente o cursor para a esquerda 10H
Desloca o cursor + a mensagem para a direita 1CH
Desloca o cursor + a mensagem para a esquerda 18H
Desloca o cursor para a posição inicial da segunda linha C0H
Desloca o cursor para a posição inicial da primeira linha 80H

Resumo para utilizar o display: Fixação das condições de utilização (38h)


Fixação das condições de utilização (38h)
Controle do display (0Eh)
Modo de operação (06h)
- Configurar o display: limpeza do display (01h)
colocar a instrução na porta
habilitar dados (RS=0, R/W=0, E = 1Î0) RS – Pino 4
rotina de atraso R/W – Pino 5
E – Pino 6
- Enviar dados:
colocar dados na porta
habilitar dados (RS=1, R/W=0, E = 1Î0)
rotina de atraso

49
MCS51
Módulo 3 Prof. Celso

ROTINA COMENTADA:

Considerando a seguinte ligação, escreva uma mensagem no LCD.

ORG 0h ; posiciona o programa no endereço 0h da Flash

inicio: LCALL config_lcd ; chama rotina para configurar o LCD


LCALL config_lcd ; “ “ “ “ “ “
MOV R7, #0FFh ; inicializa o índice da tabela
MOV DPTR, #mensa ; carrega mensagem a ser escrita

volta: INC R7 ; pega o próximo índice da tabela


MOV A, R7 ; movimenta o índice para o Acc
MOVC A,@A+DPTR ; obtém o caracter referente ao índice carregado
MOV P1, A ; coloca o caracter a ser escrito na porta do LCD
LCALL habi_dado ; escreve no LCD (habilita escrita de dado)
CJNE A,#0FFh, volta ; se não chegou no fim da mensagem, volta
SJMP $ ; se chegou no fim, para o processamento

config_lcd: ; subrotina para configurar o LCD


MOV P1, #38h ; fixa condições iniciais
LCALL habi_inst ; habilita instrução
MOV P1, #38h ; fixa condições iniciais
LCALL habi_inst ; habilita instrução
MOV P1, #06h ; fixa controle do display
LCALL habi_inst ; habilita instrução
MOV P1, #0Fh ; fixa modo de operação
LCALL habi_inst ; habilita instrução
MOV P1, #01h ; limpa display
LCALL habi_inst ; habilita instrução
RET ; retorno da rotina de configuração do LCD

50
MCS51
Módulo 3 Prof. Celso

habi_inst: ; rotina para habilitar instrução


MOV P2, #02h ; coloca RS=0 (instrução) e E=1
MOV P2, #00h ; coloca RS=0 (instrução) e E=0 (borda descida)
LCALL atraso ; chamada da rotina de atraso
RET ; retorno da rotina de habilitar instrução

habi_dado: ; rotina para habilitar envio de dados


MOV P2, #03h ; coloca RS=1 (dado) e E=1
MOV P2, #01h ; coloca RS=1 (dado) e E=0 (borda descida)
LCALL atraso ; chamada da rotina de atraso
RET ; retorno da rotina de habilitar dados

atraso: ; rotina de atraso


MOV R1,#14h ; carrega R1
volta1: MOV R0,#0FAh ; carrega R0
DJNZ RO, $ ; fica decrementando R0 enquanto for ≠ 0
DJNZ R1, volta1 ; se R0=0, decrementa R1 e volta
RET ; retorno da rotina de atraso

mensa: db ‘escreva aqui a sua mensagem’, 0FFh ; mensagem

END ; fim de programa

Exercício 1: Faça um programa que leia um teclado simples da porta P3 que


mostre no LCD as seguintes mensagens:

Se P3 = FFh Î Funcionamento normal


Se P3.0 = 0 Î Pressão baixa de óleo
Se P3.1 = 0 Î Temperatura abaixo do normal
Se P3.2 = 0 Î Estado de emergência

Exercício 2: Utilizando um teclado de 16 teclas (0...9, A,B,C,D,E,F) faça um


programa que escreva no LCD qual foi a tecla pressionada.

51

Você também pode gostar