Professional Documents
Culture Documents
EXPENDEDORA
EXPENDEDORA DE GASEOSAS
cero:
std_logic_vector(0
TO
CONSTANT
6):="1111001";
uno:
std_logic_vector(0
TO
CONSTANT
6):="0100100";
dos:
std_logic_vector(0
TO
CONSTANT
6):="0110000";
tres:
std_logic_vector(0
TO
CONSTANT
6):="0011001";
cuatro:
std_logic_vector(0
TO
CONSTANT
6):="0010010";
cinco:
std_logic_vector(0
TO
CONSTANT
6):="0000010";
seis:
std_logic_vector(0
TO
CONSTANT
6):="1111000";
siete:
std_logic_vector(0
TO
CONSTANT
6):="0000000";
ocho:
std_logic_vector(0
TO
CONSTANT
6):="0010000";
nueve:
std_logic_vector(0
TO
SIGNAL actual:mostrar:=md1;
SIGNAL actual1:cambio:=cd1;
SIGNAL contador: integer range 0 to 39999;
SIGNAL contador1: integer range 0 to 8000000;
SIGNAL saldo: integer range 0 to 19:=0;
SIGNAL cam: integer range 0 to 4:=0;
signal div_frec:std_logic;
signal aux: std_logic:='0';
begin
Frecuencia:
PROCESS (clk) begin
if rising_edge(clk) then
contador<=contador+1;
if contador>=100 then
aux<='1';
contador<=0;
else
aux<='0';
end if;
end if;
end process Frecuencia;
div_frec<=aux;
Cambio1:
PROCESS(m1,m2,m1,clk) begin
if reset='1' then
if clk='1' and clk'event and saldo<10 then
contador1<=contador1+1;
IF contador1>=7500000 and m1='1' and
m2='0' and m3='0' then
contador1<=0;
saldo<=saldo+1;
end if;
if contador1>=7500000 and m2='0' and
m1='0' and m3='1' then
contador1<=0;
saldo<=saldo+2;
end if;
if contador1>=7500000 and m3='0' and
m2='1' and m1='0' then
contador1<=0;
saldo<=saldo+5;
end if;
end if;
if saldo>=10 then
mos<="0000";
case saldo is
when 11=>cam<=1;
when 12=>cam<=2;
when 13=>cam<=3;
when 14=>cam<=4;
when others=> cam<=0;
end case;
else
mos<="1111";
end if;
else
saldo<=0;
mos<="1111";
end if;
end PROCESS Cambio1;
cool:
PROCESS(div_frec)
BEGIN
if div_frec='1' AND div_frec'EVENT THEN
case actual is
when md1=> actual<=md2;
when md2=> actual<=md3;
when md3=> actual<=md4;
when md4=> actual<=md1;
end case;
end if;
END PROCESS cool;
cool1:
PROCESS(div_frec)
BEGIN
if div_frec='1' AND div_frec'EVENT THEN
case actual1 is
else
case actual1 is
when cd1=>
pd<="0111";
case cam is
when 0=> dis<=cero;
when 1=> dis<=cero;
when 2=> dis<=cero;
when 3=> dis<=cero;
when 4=> dis<=cero;
when others=> pd<="1111";
end case;
when cd2=>
pd<="1011";
case cam is
when 0=> dis<=cero;
when 1=> dis<=uno;
when 2=> dis<=dos;
when 3=> dis<=tres;
when 4=> dis<=cuatro;
when others=> pd<="1111";
end case;
when cd3=>
pd<="1101";
case cam is
when 0=> dis<=cero;
when 1=> dis<=cero;
when 2=> dis<=cero;
when 3=> dis<=cero;
when 4=> dis<=cero;
when others=> pd<="1111";
end case;
when cd4=>
pd<="1110";
case cam is
when 0=> dis<=cero;
when 1=> dis<=cero;
when 2=> dis<=cero;
when 3=> dis<=cero;
when 4=> dis<=cero;
when others=> pd<="1111";
end case;
end case;
end if;
end PROCESS mostrar1;
end Behavioral;
Anlisis
El primer anlisis que se debe hacer respecto a la programacin y el
funcionamiento fsico de este es la asignacin de pines en la tarjeta
coolrunner ya que de acuerdo al programa que se realiz se
utilizaron se utilizaron los mdulos que estn asignados con el
nombre J1 Y J2 es decir que toda la conexin respecto a lo que tenga
que ver con la expendedora se realizara de este par de mdulos.
Procedimiento
Despus de realizar la respectiva programacin de cada uno de los
componentes se declararon tres pulsadores y un diodo led donde:
m_1: $100
m_2: $200
m_3:$500
Led: Gaseosa o Refresco
Posterior a ya saber qu es esto se debe saber que el costo de cada
bebida es de $1000 de acuerdo a este se lleva a ingresar las
monedas por medio de los pulsadores en el momento que se llegue
a $1000 pesos sin importar el orden de monedas y cantidad, la
maquina al detectar los $1000 encender el led haciendo referencia
de que sali la bebida y el cambio respectivo se mostrara en los
displays, as se lleva a cabo cada proceso de solicitud de gaseosa.
Sustentacin
En el momento de presentar como sustentacin se pidi que la
representacin de cada una de las monedas se hiciera por leds
asignndole a cada moneda un led. Ejemplo:
Led 1: $100
Led 2: $200
Led 3: 500
El fin de este es que cuando se arrojen las vueltas se identifique de
que valor es la moneda que devuelve es decir sean las vueltas $300
mostrar el led que identifica $200 y $100.
Simulaciones en el programa de ISE con monedas de $100, $200,
$500.
MONEDA DE $500
MONEDA DE $200
MONEDA DE $100
Conclusin