O
objectivo desta montagem é enviar para um LCD 16X2, os
caracteres introduzidos via teclado PS2.
Não se impelmetarão funções mais complexas
como combinações de teclas, por isso, os caracteres
alfanuméricos apenas serão implementados em maiúsculas.
Deverá ser possível apagar um caracter recorrendo
á tecla "back space", e a tecla "Enter"
(ou "return") deverá mudar da 1ª para a
2ª linha do LCD, para que se possa continuar a escrever nesta.
PS2
- ficha fêmea
Pino nº
Sinal
1
Data
2
NC
3
GND
4
Vcc
(+5v)
5
Clock
6
NC
Para
estabelecer a comunicação entre o teclado PS2 e
o microcontrolador, apenas são nessárias duas linhas,
a de dados (Data) e a de sinal de relógio (clock) para
sincronizar a transferência de dados entre o teclado e o
microcontrolador. O sinal de clock depende do teclado e poderá
variar entre 10 a 16KHz, efectuando-se a comunicação
de acordo com o seguinte diagrama temporal (transmissão
no sentido teclado -> microcontrolador):
Como
se desconhece a frequência de clock do teclado, usa-se uma
interrupção externa para o mesmo, activa por transição,
e desta forma, assim que se der uma transição na
linha de clock, o microcontrolador poderá dar início
á recepção dos caracteres enviados pelo teclado.
O teclado usado é do tipo "multi functional, versão
2", que gera um código make para tecla premida e quando
esta é libertada, envia o correspondente código
break, que é composto na maior parte dos casos pelo envio
do caracter F0, seguido novamente do código da tecla. Temos
portanto que, para cada tecla premida (e imediatamente libertada),
o teclado envia 3 conjuntos de caracteres (incluindo em cada um
os start, parity e stop bits):