Escolar Documentos
Profissional Documentos
Cultura Documentos
Informações Teóricas:
Os teclados mais novos são compostos por 102 teclas, com um conjunto de
comandos próprios e teclas de funções alinhadas. O teclado IBM, padrão
mais utilizado atualmente, gera um código especial chamado scancode,
formado por um byte representado, geralmente, em hexadecimal, ao
hospedeiro a cada vez que uma tecla é pressionada. Quando uma tecla é
solta, é gerado um break-code, geralmente diferente do scancode inicial da
ação de pressionar (make). Na figura 1 é apresentada uma relação das
principais teclas com seus respectivos códigos.
5 – CLOCK DO 6 – RESERVADO
TECLADO
5. 4 – 5Vcc
3 – TERRA
1 – DADOS DO 2 – RESERVADO
TECLADO
Procedimentos:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY teclado IS
PORT ( rst : IN STD_LOGIC; -- Sinal de Reset
clock_tec : IN STD_LOGIC; -- Sinal de Clock do Teclado
dados_tec : IN STD_LOGIC; -- Sinal de Dados do Teclado
scan_code: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); -- Valor Lido (Tabela ScanCode)
END teclado;
BEGIN
ler_scancodes: PROCESS (clock_tec, rst) -- Processo que lê scancode do teclado quando pressionado
BEGIN
CASE contador IS
WHEN 0 => null; -- START Bit ('0').
WHEN 10 =>
IF (dados_tec = '1') THEN -- Se STOP Bit é igual a '1'
contador <= contador + 1; -- Contador é incrementado em 1.
ELSE null; -- Caso contrário não é o bit de parada
END IF;
WHEN 21 =>
IF (dados_tec = '1') THEN -- Fim do intervalo de 10 bits.
contador <= contador +1;
ELSE null;
END IF;
WHEN 22 =>
IF (dados_tec = '0') THEN -- START Bit, da ação de SOLTAR TECLA
contador <= contador + 1;
ELSE null;
END IF;
WHEN 32 =>
IF (dados_tec = '1') THEN -- STOP Bit, da ação de SOLTAR TECLA
contador <= 0; -- Reinicia o contador.
ELSE null;
END IF;’
END CASE;
END IF;