Estoy diseñando un teclado en VHDL. Todo funciona bien cuando sólo hay una tecla es presionada. Estoy escaneando cada columna para que presione una tecla de una máquina de estado y cuando no se presiona ninguna tecla, que es la condición pin4pin6pin7pin2 = "0000"
me cambio a otro estado para la digitalización de la siguiente columna. Así que me puse las columnas pin3pin1pin5
de forma secuencial a "001"
, "010"
y "100"
.
Mientras que la digitalización pin3pin1pin5
como "001"
e si pin4pin6pin7pin2
es "0100"
simplemente "9" es presionado. Declaro en VHDL pin4pin6pin7pin2
como entrada y pin3pin1pin5
como puertos de salida. Cuando yo pulse 6 y 9 al mismo tiempo, pin6
y pin7
son high
. La primera tecla que se presiona a la lectura, el segundo es ignorado. Cuando yo pulse 3 y 7 al mismo tiempo, el primero se presiona con pocos ms antes de la gana y la primera clave es leer, la segunda clave es ignorado, pin2
y pin4
son high
.
Aquí está la parte difícil. Cuando yo pulse 4 y 6 al mismo tiempo, espero que pin7
a high
pero se vuelve low
y pin4pin6pin7pin2 = "0000"
, que no entiendo cómo y por qué. Porque "0000"
es detectado como ninguna tecla pulsada, el estado de la máquina saltos de un estado a otro. Mientras que la celebración de 4 y 6 si uno empuja y hojas de 4 varias veces, es detectado como 6 pulsa varias veces, lo cual es un gran error. Yo estaría encantado si usted me puede ayudar a depurar esta!
Lo mismo sucede con "1" y "2", mismo con el "7" y "8" sólo para las llaves en la misma fila. Dado que este es un proyecto en curso que no puedo poner mi código VHDL en línea :( yo estaría encantado si usted me puede dar consejos para superar esto!
A continuación, no voy a subir mi código a la placa, no se ejecuta ningún código. Conectar Pin5
a tierra, con una simple pulsación en 1,2,4,5,7,8,*,0 no se convierta Pin3
LED pero si Im pulsar 6 y luego 4 al mismo tiempo, Pin3
LED está encendido y Pin7
LED sigue encendido, pero cuando el código se ejecuta de que esto no suceda. Tal vez me he conectado algo mal y por suerte, Pin7
está en, no sé...
A continuación está el esquema del teclado de la junta directiva: