piano vhdl 2 SELEDIG

1323 palavras 6 páginas
Varredura de um Teclado Matricial

Categoria: EXEMPLOS COM CPLD
Publicado em QUINTA, 08 SETEMBRO 2011 15:04
Escrito por ANDRE VINICIUS ROCHA SILVA
Acessos: 3078
Varredura de um teclado matricial O projeto apresentado abaixo tem o objetivo de ler um teclado matricial pelo processo de varredura, ou seja, testar linha por linha ou coluna por coluna para determinar a tecla pressionada. Neste projeto, como mostra a animação, são atribuídos valores as linhas de forma a uma linha estar em nível lógico baixo e as outras em nível lógico alto.
Esse artigo é um exemplo de projeto descrito em VHDL, o qual foi simulado no Modelsim-Altera®, tendo como entrada de comandos um testbench, também escrito em VHDL.
Para a implementação do projeto são necessários:
1x Módulo CPLD_7064;
1x Módulo de teclado numérico;
1x Placa de LEDs, para vizualizar o valor da tecla apertada.
Detalhamento do Princípio de Funcionamento
Como explicado acima, o projeto tem por objetivo ler um teclado matricial, usando a varredura de linha. Para isto, defini-se as linhas como saídas e as colunas como entradas. A varredura das linha é feita rotacionando um nível lógico baixo pelas linhas, de forma a uma linha estar em '0' e as outras em '1'. Dessa forma, quando um botão estiver pressionado e a linha correspondente estiver em '0', o nível lógico da linha é transmitido para a coluna e pode-se então ler a tecla pressionada.

Animação 1: Ilustração do projeto a ser implementado.
Por exemplo, se a tecla “ * ” esta pressionada no momento em que a quarta linha (G) está em nível lógico baixo, este nível é transmitido à coluna correspondente (F), enquanto as demais colunas ficam em nível alto, devido ao “pull up” resistivo. Abaixo segue a explicação do projeto e no final da página você encontra os arquivos de projetos para baixar.
Descrição em VHDL
No projeto serão utilizados como entradas o clock, o resetn ("reseta" quando em nível lógico baixo) e as colunas. Como saída serão utilizadas as linhas e o sinal

Relacionados