Creando un teclado 5x5 sin usar microcontroladores

1

Esta es mi primera pregunta en stackexchange, por lo que si no puedo proporcionar suficiente información o si hago algo incorrecto, hágamelo saber.

Quiero crear un teclado 5x5 usando 25 botones simples, podría conectar cada columna a una salida de decodificador y grabar la entrada del decodificador para obtener el número de columna y conectar las filas a un multiplexor para obtener el número de columna (creo que entiendo esta parte), pero quiero convertir el número de fila y columna en un número de 5 bits (0-24), para representar el botón presionado. Básicamente, quiero aplicar esta fórmula mediante lógica discreta: [(5 * fila) + columna)]. Por ejemplo, la coordenada (0,0) será 0 y la coordenada (3,4) será 19. También asuma que solo se presiona un botón a la vez.

Diseñar un circuito de este tipo a través de kmapping requiere una gran cantidad de hardware (IC), ¿hay alguna forma de implementarlo usando menos hardware (IC)?

Esto es parte de un proyecto, solo se permiten microcontroladores, se puede usar cualquier otro hardware TTL.

    

4 respuestas

0
  

(5 × fila) + columna

     

El diseño de un circuito de este tipo a través de K-mapping requiere una gran cantidad de hardware (IC) ...

Es por eso que se inventaron ICs más especializados. Por ejemplo, puede obtener un sumador de 4 bits como un solo chip (7483). Solo se necesitan dos de ellos, más una puerta O de 2 entradas, para implementar su fórmula.

Me doy cuenta de que esta es una tarea, pero de todos modos le daré una respuesta. Optimizar un diseño alrededor de las funciones lógicas de SSI / MSI es una habilidad obsoleta que no tiene lugar en un mundo que tiene MCU, CPLD y FPGA baratos. Tengo esta habilidad porque estaba diseñando grandes sistemas usando este tipo de lógica en la década de 1980, pero realmente no tengo idea de por qué alguien todavía estaría enseñándola hoy.

Multiplicar R por 5 es una cuestión simple de agregar R y 4 × R, y esta última se crea simplemente desplazando R dos lugares a la izquierda. Definamos los bits de R como r2 r1 r0, y los bits de C como c2 c1 c0.

Entonces 5 × R es

 R =  0  0 r2 r1 r0
4R = r2 r1 r0  0  0
     --------------
     s4 s3 s2 s1 s0

Tenga en cuenta que los dos LSB de la suma (s1 s0) son simplemente copias de r1 r0; no se requiere ninguna lógica para crearlos. Se puede usar un chip sumador de 4 bits para crear las tres columnas restantes (s4 s3 s2).

Ahora necesitamos agregar los bits de columna a esta suma. Normalmente, esto requeriría un sumador de 5 bits, pero podemos aprovechar el hecho de que los números de fila y columna solo varían de 0 a 4 en esta aplicación.

Tenga en cuenta que cuando R = 4, S = 20, que es 10100 en binario, y esta es la única vez que se establece s4. Independientemente del valor de C, nunca puede haber un acarreo en la columna s4. De manera similar, cuando R = 3, S = 15, que es 01111 en binario. Ahora, s4 no está establecido, pero cualquier valor distinto de cero de C dará como resultado un acarreo en esa columna. Por lo tanto, no necesitamos un sumador completo para esa columna. Podemos usar otro sumador de 4 bits para procesar las cuatro columnas de orden inferior, y luego simplemente O juntos s4 y la transferencia de ese sumador para crear el MSB del resultado.

    
respondido por el Dave Tweed
5

Aquí hay una matriz de diodos para siete botones y tres bits. (Actualizado después de la corrección de Andy). Expándelo para obtener 25 botones.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Oldfart
1

Lo que está buscando es algo como MM74C922 / MM74C923 Codificador de 16 o 20 teclas . No sé de una versión de 25 vías.

Figura1.ElcodificadordematrizdeclavesMM74C923.

Estoestásucediendobastanteenestoyalgunosestudiosdelahojadedatospuedenconvencerlodequenovalelapenaintentarloconlógicadiscreta.Sinembargo,deberíaserbastantesencilloemularenunpequeñomicro.

LoencontréporprimeravezenunesquemaZ80quesolíaexplicarlosaspectosbásicosdelasmicrocomputadoras.

Figura2.ElcodificadormatricialdeltecladoparalacomputadoraZ80seencuentraenlaparteinferiorderecha.(Hagaclicparaampliar).Fuente: Z80.info .

Vale la pena leer el artículo vinculado y el esquema.

    
respondido por el Transistor
0

Usted dice que no quiere usar un microcontrolador, pero ¿qué recibirá estas señales? La forma en que lo describe sería más complicada de lo que cree, ya que aún necesita alguna forma de seleccionar el canal para el mux / demux.

Lo más fácil que se me ocurre es una escalera resistiva (google R * 2R) con 25 entradas. Esto generaría un voltaje desde 0 a su voltaje de entrada, y cada interruptor emitirá un voltaje diferente, y las combinaciones de interruptores emitirán un voltaje diferente. Esto solo requeriría 50 resistencias (aunque usted querría un máximo de resistencias del 1%). Sin embargo, esto lo lleva al reino analógico.

    
respondido por el Stiddily

Lea otras preguntas en las etiquetas