Construir un circuito lógico de luz LED en funcionamiento

0

Soy un principiante en puertas / circuitos lógicos y agradecería algo de ayuda en la construcción de un sistema de luces LED en funcionamiento. El concepto es tener una fila de 20 luces LED que comienzan a parpadear, una tras otra, después de recibir una entrada determinada. Las dos únicas opciones son para que el LED de la derecha se ilumine y luego gire a la izquierda, o para que el LED de la izquierda se encienda y gire a la derecha. Solo se encenderá una luz a la vez, y cada luz permanecerá encendida durante 5 ms.

El sistema toma una entrada de 2 bits, donde "l" significa "izquierda" y "r" significa "derecha:
l r
0 0 - "Off" (ver abajo)
0 1 - comienza en el extremo izquierdo y corre a la derecha
1 0 - comienza en el extremo derecho y corre a la izquierda
1 1 - "Off" (ver abajo)

También hay un número de 5 bits que puede encender un LED a la vez, o configurarse en "Apagado":
00000 - "Off"
00001 - L0 (LED más a la izquierda)
00010 - L1
00011 - L2
...
...
...
10010 - L17
10011 - L18
10100 - L19 (LED más a la derecha)

Esto es esencialmente hasta donde he llegado, además de hacer una máquina de estados finitos que describe lo que dije al principio. Solo estoy interesado en usar puertas lógicas en este punto. Solo agradecería un impulso, así que sé por dónde empezar. Sé que necesitaré usar un flip-flop D Gracias por cualquier ayuda que pueda proporcionar.

    
pregunta UnworthyToast

1 respuesta

1

Primero, sí, he leído tu pregunta y en un momento volveré a responder el OT. Hay que decir que la forma más fácil, barata, más pequeña y más flexible de hacer esto es con 5 resistencias de 100 ohmios y un PIC o Arduino enlace . OK, volviendo al tema.

Quieres hacerlo con lógica. ¿Presumiblemente para aprender diseño lógico? Hay muchos conceptos diferentes sobre cómo abordar esto. Si quieres convertirte en un diseñador de chips, la mejor idea es usar las construcciones de nivel más bajo posible, así que puertas y cierres. Esto se mapeará bien en el VHDL que necesitará usar, pero dará como resultado una gran cantidad de área. Podría reducir su recuento de componentes yendo a MSI, por lo que contadores, registros de cambios, decodificadores, pero esto no será una ayuda de aprendizaje tan útil para el diseño de circuitos integrados.

Debe registrar el estado, cambiar el estado y los LED de la unidad. Cómo dividir esos altera el sabor de su diseño. Podría tener un contador central, que determine qué LED está encendido, y luego algún tipo de decodificación para controlar los LED. O puede tener todo el almacenamiento de estado realizado por LED.

Cuando mencione los números de pieza como xxabc, reemplace xx con HC o LS o AC o HCT, lo que sea que pueda tener en sus manos. No todos los tipos de lógica están hechos en todas las familias. Hay algunos chips CMOS de la serie 4000 cuya numeración se alinea con la serie mencionada anteriormente, pero la mayoría no.

Comenzando con uno por LED. El direccionamiento 'One Hot' usa un D-latch por LED. La restricción de que podrían desplazarse hacia la izquierda o hacia la derecha, o dirigirse, significa que cada uno necesita al menos un multiplexor de 3 entradas en la entrada D. Puedes comprar dual, 4 multiplexores de entrada, xx153 o xx253. Junto con un cierre doble, xx74, esto le da un LED por paquete. Esto es flexible en el sentido de que más de un LED puede estar encendido a la vez. Básicamente, usted ha construido un registro de desplazamiento direccionable bidireccional a partir de puertas. Aún necesitaría implementar un decodificador de dirección para la función 'LED encendido programado'.

Una alternativa es comprar un registro de desplazamiento bidireccional, xx194, para comprimir todos los pestillos y multiplexores en trozos más grandes.

Estos dos enfoques de registro de desplazamiento tienen el control suficiente para que pueda controlarlo directamente, sin la necesidad de una máquina de estado.

En el método del contador central alternativo, podría usar un contador arriba / abajo como xx169 (suponiendo que no quiera construir dicho contador a partir de puertas). Existen varias alternativas para una decodificación estática a LEDs. Una es usar varios demultiplexores, como 3off xx138, con cada salida que maneja un LED. O puede configurar los LED en una cuadrícula de 5x4 y usar 1 xx138 y la mitad de xx139 para controlar filas y columnas de la misma. O puede conectar en cascada 3 de xx595 registro de desplazamiento bloqueado. Los diferentes tiempos de inyectar un 1 en la entrada del primer registro, y el bloqueo después de varios turnos, le permitirán controlar cualquier salida. Este último requerirá una máquina de estado más complicada de controlar, pero es más flexible que los decodificadores estáticos.

Ahora que has leído algunas de las opciones, ¿qué es lo que realmente quieres hacer?

    
respondido por el Neil_UK

Lea otras preguntas en las etiquetas