Circuito de una máquina expendedora simple

4

Como tarea, me dieron el diseño de un circuito de máquina expendedora simple de la siguiente manera

  • Recibe 5 centavos y 10 centavos uno a la vez.
  • 20 centavos por refrigerio, da cambio cuando es necesario (IE, 25 centavos, devuelve 5 centavos con un refrigerio)
  • Una vez que se da un refrigerio, vuelve a su estado original.
  • Requiere reinicio asíncrono. Se reinicia en activo bajo (de vuelta al estado inicial), y obliga a emitir cualquier cambio. En activo alto, funciona normalmente.
  • 3 entradas (D, N, R) 2 salidas (Snack, cambio)
  • DN (00) no especifica monedas, (01) especifica un níquel y (11) especifica una moneda de diez centavos

He completado todo, desde tablas de estado hasta dibujos, pero es MUY complicado y no creo que esta sea la mejor manera de hacerlo. Esto es lo que hice

Diagrama de estado

Tabladeestados

El circuito se diseñó utilizando un flip flop JK, un flip flop y un flip flop. (Tuve que usar esto porque lo dije) y acabo con 32 situaciones que tengo que explicar, lo que hizo que el circuito fuera muy complicado (no se pudieron usar los mapas K-T_T). Si alguien me puede dar una idea sobre cómo simplificar (no por el bien de la tarea, por mi propio conocimiento también), o más bien reducir la cantidad de material en la tabla de la verdad, sería genial. Además, no sé cómo integrar el reinicio asíncrono correctamente. Si alguien necesita más información, me complacería brindársela.

    
pregunta Aaron

2 respuestas

3

Sin entrar en la codificación binaria específica de las entradas, salidas y estados, el diagrama de estado abstracto debería tener este aspecto. La notación en cada borde es Entrada → Salida.

Tengaencuentaquehedefinidountercer"Reembolso" de salida que reembolsa las monedas insertadas hasta el momento, que es una operación distinta de dispensar el cambio junto con un bocadillo si se han insertado 25 centavos.

Tenga en cuenta que la mayoría de las máquinas expendedoras reales mantienen las monedas que el usuario ha insertado en un área separada hasta que se ha dispensado un bocadillo, momento en el cual se liberan en la caja de monedas real. Si se solicita un reembolso, el usuario recupera sus monedas originales.

    
respondido por el Dave Tweed
2

El reinicio asíncrono te ha causado problemas. Normalmente, la forma de hacer este tipo de diseño es hacer todas las partes síncronas y luego conectar el reinicio a los flops individualmente. Normalmente, el reinicio asíncrono va a un pin separado en los flops. Compruebe si esa es una interpretación válida de esta pregunta.

Tener una salida requerida cuando se afirma la entrada de restablecimiento es un requisito desagradable para implementar "correctamente", pero no dice que no se pueda afirmar la señal de "cambio" cuando no hay cambio y el "cambio" la señal no tiene que llevar el valor del cambio, por lo que siempre puede hacer valer la salida del cambio (= 1) cuando el reinicio está bajo.

No se especifica si hay una señal de reloj o si se supone que debes usar el bit inferior de DN para impulsar los pines del reloj. Voy a asumir lo segundo?

Una vez que esté todo fuera del camino, todo lo que está haciendo es contar hasta 4. Tan pronto como el conteo supere los 4, dispense y reinicie. Si llega a 5, dispensa el cambio.

(Creo que está destinado a hacer valer "dispensar" y "cambiar" en la transición 00 - > 11, y luego soltarlos y pasar al siguiente estado en el borde descendente 11 - > 00. De nuevo esto es subespecificado).

    
respondido por el pjc50

Lea otras preguntas en las etiquetas