Está en la página 1de 5

MANUAL DE PRÁCTICAS

DIVISIÓN ACADÉMICA DE MECÁNICA INDUSTRIAL

Practica# 1. SUMADOR
Título de la práctica

Carrera MECATRÓNICA / AUTOMATIZACIÓN

Asignatura DISPOSITIVOS DIGITALES

Unidades de
Cuatrimestre HORAS
aprendizaje
I.DISPOSITIVOS
LÓGICOS Teóricas Prácticas Totales
PROGRAMABLES
4
7 16 23

Elaboró M.C. ABRAHAM LEYVA MANCILLA

Hernández Hernández Luis Andrés


Alumno (s):

Año de elaboración Año de actualización

2020 2021
SUMADOR

Practica# 1. SUMADOR

Objetivo particular: El alumnado deberá de aplicar las formas y métodos de


programación para realizar 2 operaciones con polaridad, suma y resta de 2 números
binarios codificados y enviados mediante multiplexion a un display 4x1, los números
seleccionados deberán aparecer en la pantalla al igual que el resultado.

En este caso se debemos realizar 2 operaciones, suma y resta, mediante los leds
que contiene la tarjeta cyclone debemos mostrar la polaridad, es decir, si el valor es
negativo o positivo, la polaridad se debe seleccionar con push botoms; los números
deberán mostrarse en el display y debemos seleccionar los números con botones o
dip switch.

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.NUMERIC_STD.ALL;

ENTITY NUMERO IS
PORT()
A : IN STD_LOGIC_VECTOR(9 DOWNTO 1); --ENTRADAS DE
NUMEROS DECIMALES
POL: IN STD_LOGIC; --POLARIDAD DEL NUMERO
LED: OUT STD_LOGIC; --SALIDA DEL LED INDICADOR DE POLARIDAD
NUMERO
T: OUT STD_LOGIC_VECTOR(4 DOWNTO 1); --SALIDAS A PANTALLAS
SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --SALIDA A 7
SEGMENTOS
);
END NUMERO;

ARCHITECTURE BLOQUE OF NUMERO IS


SUMADOR

SIGNAL NA: STD_LOGIC_VECTOR(4 DOWNTO 1);


SIGNAL RA: STD_LOGIC_VECTOR(7 DOWNTO 0);

CODIFICADOR: PROCESS (A)


BEGIN
IF ( A(9)='1') THEN NA<="1001";
ELSIF ( A(8)='1') THEN NA<="1000";
ELSIF ( A(7)='1') THEN NA<="0111";
ELSIF ( A(6)='1') THEN NA<="0110";
ELSIF ( A(5)='1') THEN NA<="0101";
ELSIF ( A(4)='1') THEN NA<="0100";
ELSIF ( A(3)='1') THEN NA<="0011";
ELSIF ( A(2)='1') THEN NA<="0010";
ELSIF ( A(1)='1') THEN NA<="0001";
ELSE NA<="0000";
END IF;
END PROCESS;

POLARIDAD: PROCESS (POL) --VERIFICAR LA POLARIDAD DE LOS NUMEROS


BEGIN
IF (POL='0') THEN
RA<= STD_LOGIC_VECTOR(-SIGNED("0000"& NA)); --NEGATIVOS A 8 BITS NUMERO
A
ELSE
RA<= "0000"& NA; ---POSITIVO NUMERO A DE 8 BITS
END IF;
END PROCESS

DECODIFICADOR: WITH NA SELECT --a,b,c,d,e,f,g,dp


SUMADOR

SEG <= X"9F" WHEN "0001", -- 1


X--HEXA "9F" SEG 10011111 BINARIO
X"25" WHEN "0010", -- 2
X"0D" WHEN "0011", -- 3
X"99" WHEN "0100", -- 4
X"49" WHEN "0101", -- 5
X"41" WHEN "0110", -- 6
X"1D" WHEN "0111", -- 7
X"01" WHEN "1000", -- 8
X"03" WHEN OTHERS; -- 0

T <= "1110"; --an [ an3, an2, an1, an0]


LED <= '0' WHEN RA(7)='1' ELSE'1'; --POLARIDAD PARA NUMERO
A

END BLOQUE;
SUMADOR

Paso I. Realizar el código de programación en VHDL en texto.

Paso II. Asignación de los pines entrada/salida en pin planer.

Paso III. Insertar los resultados de la práctica (fotos).

También podría gustarte