Trabalhos Práticos
AM 2007/2008
Mapeamento em Posição de Memória
Interface com visor LCD
Mapeamento em posição de Memória
Interface com visor LCD
6
Objectivos
1
Compreender os mapeamentos em Portos de I/O e de Memória dados externa.
Identificar os endereços na memória de dados externa em que se encontra o visor
LCD.
Saber configurar e escrever num módulo LCD.
Introdução
Os módulos LCD são interfaces de saída muito úteis em sistemas de microprocessador.
Estes módulos podem ser em modo gráfico ou caracteres. Os módulos LCD gráficos
existem com resoluções de 122x32, 128x64, 240x64 e 240x128 dots pixel, e geralmente
estão disponíveis com 20 pinos para conexão. Os LCD comuns (tipo caracteres) são
especificados em número de linhas por colunas e existem nas configurações previstas
na Tabela 1.
Colunas
Linhas
Pinos
8
2
14
12
2
14/16
16
4
14/16
20
1
14/16
20
2
14/16
20
4
14/16
24
2
14/16
24
4
14/16
40
2
16
40
4
16
Tabela 1- Formato de visores LCD.
Os módulos podem ser encontrados com LED backlight (retro iluminados) para facilitar
as leituras durante a noite. Neste caso, a alimentação deste led faz-se normalmente pelos
pinos 15 e 16 para os módulos comuns e 19 e 20 para os módulos gráficos, sendo os
pinos 15 e 19 para ligação ao ânodo e os pinos 16 e 20 para o cátodo. A corrente de
alimentação deste led varia de 100 a 200mA dependendo do modelo. Estes módulos
utilizam um controlador próprio, permitindo sua interligação com outras placas através
de seus pinos, onde deve ser alimentado o módulo e interligado o barramento de dados e
controle do módulo com a placa do usuário.
Trabalho Prático Nº 6
Página 1
Trabalhos Práticos
AM 2007/2008
Mapeamento em Posição de Memória
Interface com visor LCD
Naturalmente que além de alimentar e conectar os pinos do módulo com a placa do
usuário deverá haver um protocolo de comunicação entre as partes, que envolve o envio
de bytes de instruções e bytes de dados pelo sistema.
Pino
Função
Descrição
1
Alimentação
GND
2
Alimentação
Vcc
3
V0
Tensão para ajuste de contraste
4
RS
1-Dado,
0-Instrução
5
R/W
1-Leitura,
0-Escrita
6
E (Chip Select)
1 ou ( 1 → 0 ) habilita,
7
B0 lsb
8
B1
9
B2
10
B3
11
B4
12
B5
13
B6
14
B7 msb
15
A (se existir)
Ânodo para Led backlight
16
K (se existir)
Cátodo para Led backlight
0-desabilita
Barramento de dados
Tabela 2- Descrição dos pinos dos visores LCD.
Os módulos LCD permitem um ajuste na intensidade da luz emitida ou ajuste de
contraste, isto é possível variando-se a tensão no pino 3. Deve ser ligado um
potenciómetro de 10K entre os pinos 1 e 2 e com o ponto médio a ligar ao pino 3.
Interface com MCU
Os módulos LCD são projectados para conectar-se com a maioria das CPU’s, bastando
para isso que esta CPU atenda as temporizações de leitura e escrita de instruções e dados,
fornecido pelo fabricante do módulo, ou seja pelo controlador do módulo (normalmente
Hitachi HD44780U). A Figura 1 mostra um exemplo de diagrama temporal necessário
observar pelo CPU para efectuar uma operação de escrita no módulo.
Trabalho Prático Nº 6
Página 2
Trabalhos Práticos
AM 2007/2008
Mapeamento em Posição de Memória
Interface com visor LCD
Figura 1- Diagrama temporal para escrita no controlador HD44780U.
R/W
RS
DESCRIÇÃO
0
0
Escrita no módulo - Instrução
0
1
Escrita no módulo – Dados
1
0
Leitura do módulo – Instrução
1
1
Leitura do módulo - Dados
Tabela 3- Descrição das diversas operações possíveis de efectuar no módulo LCD.
Sempre que se alimenta o módulo LCD deve ser executado o procedimento de
inicialização, que consiste no envio de uma sequência de instruções para configurar o
modo de operação do visor LCD. Existem módulos LCD em que este procedimento
ocorre automaticamente, dentro de condições específicas que envolve temporizações
mínimas referente a transição do nível lógico 0 para 1. Em caso de dúvidas,
recomendamos o envio destas instruções após o reset do sistema. Apenas é feita
referência à inicialização para sistemas de 8 bits de dados (5 instruções). Entre as duas
primeiras instruções recomenda-se um atraso de 15ms. As restantes instruções podem ser
escritas após verificar a Busy Flag.
1
→
2
→
3
→
4
→
5
30h
(15 ms)
30h
(15ms)
(06h
(BF)
0Eh
(BF)
01h
Tabela 4- Sequência de cinco instruções para inicialização de módulos LCD em ligação a 8
bits.
LCD 16x1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Linha 1
80
81
82
83
84
85
86
87
C0
C1
C2
C3
C4
C5
C6
C7
LCD 16x2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Linha 1
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
Linha 2
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
Tabela 5- Correspondência entre a posição dos caracteres no visor LCD e o memória
DDRAM. De referir que em alguns módulos esta correspondência pode não se verificar.
Trabalho Prático Nº 6
Página 3
Trabalhos Práticos
AM 2007/2008
Mapeamento em Posição de Memória
Interface com visor LCD
Sequência para utilização de visores LCD
1. Quando se alimenta o visor o potenciómetro deve ser ajustado para efectuar o
controle de brilho de modo a se visualizar os caracteres de uma forma adequada.
2. Em alguns módulos de uma linha só funcionam com a instrução 38h ao invés de
30h, conforme instruções de inicialização.
3. O sinal de Enable (pino 6) deverá ser gerado conforme a temporização mostrada
na Figura 1. Os códigos de dados ou de instruções só serão processados pelo
processador do módulo após a descida (flanco descendente) do sinal do Enable.
4. Para ajustar a velocidade de comunicação entre a CPU do usuário e o módulo LCD
existem duas possibilidades:
- Intercalar uma rotina de atraso de aproximadamente 15ms entre as
instruções.
- Fazer a leitura do Busy Flag antes do envio de cada instrução e só enviar
quando a mesma for ‘0’. Neste caso, a única excepção será durante a
inicialização.
RS
R/W
Código
(HEX)
Liga(sem cursor)
0
0
0C
Desliga
0
Descrição
Modo
Visor
Limpa visor e
coloca cursor na
posição home
Controle do cursor
Deslocamento do
cursor ao escrever
cursor
Deslocamento da
mensagem ao
escrever carácter
Deslocamento da
mensagem
0A/08
0
0
01
Liga
0
0
0E
Desliga
0
0
0C
Desloca para a Esquerda
0
0
10
Desloca para a Direita
0
0
14
Cursor Home
0
0
02
Cursor Piscar
0
0
0D
Cursor com alternância
0
0
0F
Para a esquerda
0
0
04
Para a direita
0
0
06
Para a esquerda
0
0
07
Para a direita
0
0
05
Para a esquerda
0
0
18
Para a direita
0
0
1C
Tabela 6- Conjunto de instruções mais utilizadas na comunicação com os módulos LCD.
A finalizar, referir que o manuseio dos módulos LCD, deve observar cuidadosamente os
procedimentos de controlo anti-estático. Eles incorporam circuitos integrados CMOS
Trabalho Prático Nº 6
Página 4
Trabalhos Práticos
AM 2007/2008
Mapeamento em Posição de Memória
Interface com visor LCD
LSI os quais são sensíveis à descarga electrostática. Deve ser evitado todo o contacto
com os terminais do conector, pistas do circuito impresso e/ou terminais do CI.
2
Questões
2.1 O módulo LCD está ligado em posição de memória de dados externa. Atendendo à
tabela 3 e de acordo com o hardware da placa identifique o conjunto de endereços
possíveis para a escrita das instruções e dados (leitura e escrita) no módulo LCD da
placa de desenvolvimento.
2.2 Que alterações deverão ser efectuadas no descodificador de endereços para alterar
o endereço base para C000H.
2.3 Amplie o kit utilizado nas aulas práticas em mais um porto de saída de 8 bits.
Utilize uma das linhas do descodificador (PAL) de endereço disponível e utilize os
dispositivos que entender.
2.4 Esclareça sobre as vantagens e desvantagens de utilização de mapeamento de
dispositivos em posição de memória de dados externa e em portos de
entrada/saída, refira-se ao exemplo concreto do kit de desenvolvimento.
Identifique os dispositivos ligados em porto I/O e em posição de memória.
3 Trabalho
3.1 Tendo como base a listagem do programa em anexo, escrever as rotinas para
escrever no LCD na linha 1 e na linha 2, caso o visor que estejam a utilizar seja de
duas linhas.
LINHA 1 do LCD
LINHA 2 do LCD
3.2 Escreva as rotinas para:
- Deslocamento de texto à direita
- Deslocamento de texto à esquerda
4
Questão Pesquisa
4.1 Pretende-se completar o trabalho de pesquisa anterior, recepção de chamadas
GSM, com a visualização do número chamador no visor LCD. Caso exista um
apelido associado ao nome deverá aparecer este em vez do número.
J. Mourinho
A chamar….
Trabalho Prático Nº 6
Página 5
Trabalhos Práticos
AM 2007/2008
Mapeamento em Posição de Memória
Interface com visor LCD
Exemplos:
Para activar a apresentação do número chamador, função CLIP
AT+CLIP=1<CR>
Para desactivar a apresentação do número chamador
AT+CLIP=1<CR>
Exemplos de CLIP:
Identificação de número chamador, não programado em memória de cartão
+CLIP: "212125166",161,,,"",0
Identificação de numero chamador, programado em memória de cartão
+CLIP: "933351299",161,,,"J. MOURINHO",0
Número chamador, confidencial
+CLIP: "",128,,,"",1<CR><LF>
Trabalho Prático Nº 6
Página 6
Download

Mapeamento em posição de Memória Interface com visor LCD 6