You are on page 1of 8

MQUINA VENDEDORA DE REFRESCOS

VHDL Wilson Balden

CIRCUITOS SECUENCIALES

Se requiere disear una mquina despachadora de refrescos, la cual


est formada por tres mdulos (subsistemas) independientes. Cada
mdulo realiza una funcin predeterminada, pero hay que disear el
sistema controlador que gobierne y sincronice cada accin de los
subsistemas. A continuacin se describe cada subsistema:
a) Mdulo de recoleccin de monedas. Recibe las monedas que el
cliente introduce en la mquina para obtener el refresco.

Caractersticas
Acepta monedas de $5.00, $10.00 y $20.00.
Cuenta con un mecanismo que rechaza monedas defectuosas.
Posee un mecanismo de deteccin de valor de la moneda; es decir,
es capaz de discriminar el valor de la moneda Menor que precio (MP)
e Igual a precio (Precio).

VHDL Wilson Balden

CIRCUITOS SECUENCIALES

El sistema recibe dos seales de entrada denominadas Limpieza y


Captura. La primera limpia el sistema y lo deja en condiciones de
inicio; la segunda recolecta las monedas que ingres el cliente.
b) Mdulo de devolucin de monedas. Proporciona el cambio al cliente
cuando introduce monedas cuyo monto excede el precio del producto.
Caractersticas
Activa una seal de salida denominada Cambio, cuya funcin es
entregar cambio al cliente en monedas de cinco pesos.
Recibe una seal denominada Listo cambio (LC), que indica cundo
se han dado cinco pesos de cambio.
c) Mdulo de servicio. Su funcin es entregar el refresco al cliente; sin
embargo, el producto slo se libera cuando la cantidad que proporcion
el cliente es igual al valor del refresco.
Caractersticas
Cuenta con una seal de salida denominada Sirve, que activa el sensor
correspondiente para que el refresco se pueda servir y entregar.
VHDL Wilson Balden

CIRCUITOS SECUENCIALES
Posee una seal de entrada denominada Listo servicio (LS), que indica
cundo se entreg el refresco.
d) Controlador. Esta unidad sincroniza las acciones de los diferentes
mdulos para automatizar el funcionamiento de la mquina
despachadora de refrescos.

VHDL Wilson Balden

CIRCUITOS SECUENCIALES

VHDL Wilson Balden

CIRCUITOS SECUENCIALES

Programa de la mquina despachadora de


refrescos
library ieee;
use ieee.std_logic_1164.all;
entity maquina is
port (
CLK, MONEDA, MP, PRECIO, LC, LS: in
std_logic;
CAP, LIMPIA, SIRVE, CAMBIO, DEC: out
std_logic);
end maquina;
architecture arq_maq of maquina is
type estados is (A,B,C,D,E,F,G,H,I);
signal edo_pres, edo_fut: estados;
type estados is (A,B,C,D,E,F,G,H,I);
Begin
type estados is RANGE -100 TO 100;
VHDL Wilson Balden

CIRCUITOS SECUENCIALES
p_estados: process (edo_pres, MONEDA,MP,PRECIO,LC,LS)
Begin
case edo_pres is
when A => CAP<='0'; LIMPIA <= '0'; SIRVE <= '0'; CAMBIO
<=' 0 ' ; DEC <= ' 0 ' ;
if MONEDA =1' then
edo_ful <= B;
else
edo_fut <= A;
end if;
when B => CAP<= ' 0' ; LIMPIA <= '0'; SIRVE <= '0'; CAMBIO <
='0'; DEC <= '0';
if MONEDA ='0' then
edo_fut <= C;
else
edo_fut <= B;
end if;

VHDL Wilson Balden

CIRCUITOS SECUENCIALES

p_reloj: process(CLK) begin


if (CLK'event and CLK='1')
then
edo_pres <= edo_fut;
end if;
end process p_reloj;
end arq_maq;

VHDL Wilson Balden

You might also like