ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Tema- Código VHDL para elevador.


Enviado por   •  20 de Noviembre de 2016  •  Apuntes  •  1.275 Palabras (6 Páginas)  •  1.230 Visitas

Página 1 de 6

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity Elevador is

port( p1,p2,p3,p4,s1,s2,s3,s4,s5 :IN BIT;

q :OUT INTEGER RANGE 0 TO 7;

csal :OUT BIT_VECTOR (3 downto 0));

end Elevador;

architecture eleva of Elevador is

begin

PROCESS (p1)

VARIABLE conteo :INTEGER RANGE 0 TO 7;

BEGIN

IF (p1'EVENT AND p1 ='1') THEN

IF (s1='0' AND s2='0') THEN conteo := 0;

ELSE conteo := conteo -1;

END IF;

q <= conteo;

END IF;

CASE conteo IS

WHEN 0 => csal <= "1010";

WHEN 1 => csal <= "1001";

WHEN 2 => csal <= "0101";

WHEN 3 => csal <= "0110";

WHEN 4 => csal <= "1010";

WHEN 5 => csal <= "1001";

WHEN 6 => csal <= "0101";

WHEN 7 => csal <= "0110";

END CASE;

END PROCESS piso1;

PROCESS (p2)

VARIABLE conteo :INTEGER RANGE 0 TO 7;

BEGIN

IF (p2'EVENT AND p2 ='1') THEN

IF (s1='0' AND s2='0') THEN conteo := conteo +1;

ELSIF (s2='0' AND s3='0') THEN conteo := 0;

ELSE conteo := conteo -1;

END IF;

q <= conteo;

END IF; --PASO COMPLET0

CASE conteo IS

WHEN 0 => csal <= "1010";

WHEN 1 => csal <= "1001";

WHEN 2 => csal <= "0101";

WHEN 3 => csal <= "0110";

WHEN 4 => csal <= "1010";

WHEN 5 => csal <= "1001";

WHEN 6 => csal <= "0101";

WHEN 7 => csal <= "0110";

END CASE;

END PROCESS piso2;

PROCESS (p3)

VARIABLE conteo :INTEGER RANGE 0 TO 7;

BEGIN

IF (p3'EVENT AND p3 ='1') THEN

IF (s1='0' AND s2='0') THEN conteo := conteo +1;

ELSIF (s2='0' AND s3='0') THEN conteo := conteo +1;

ELSIF (s3='0' AND s4='0') THEN conteo := 0;

ELSE

...

Descargar como (para miembros actualizados) txt (3 Kb) pdf (54 Kb) docx (10 Kb)
Leer 5 páginas más »
Disponible sólo en Clubensayos.com