Download - practica1_desarrollo.docx
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 1/16
Practica No. 1Contador 0-999Facultad De Ciencias De LaElectrónica
Alumnos:Daniel Escalona Pérez Juan Manuel González Delgadillo José Emiliano Moreno CarmonaLuis Pineda Rosales Adán Márquez Ramos
Benemérita Universidad Autónoma DePuebla
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 2/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
Practica No. 1
Contador 0-999
Tio! Formato tipo reporte Técnico
DESARROLLO:
Para la realización de esta práctica comenzamos por realizar un diagrama con los
bloques que debe tener el sistema para poder ser capaz de realizar su tarea
correctamente.
Como podemos observar nuestro diseño contiene 7 bloques los cuales son:
• etardo de !" ms.
• Contador.
• #ecodi$icador C.
• #ecodi$icador #.
• #ecodi$icador %.
• &ultiple'or.
• etardo de ( ms.
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 3/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
Retardo de 20 ms.
)ste bloque es el encargado en mandar una señal al contador cada !" ms. para
que incremente su cuenta* tiene una entrada que es el relo+ ,cl- / una salida que
es la señal encargada indicar cuando incrementar la cuenta ,).
0u descripción en 12#3 es la siguiente:
librar !EEE"
use !EEE.S#D$L%&!C$11'(.)LL"
entit retardo$*+ms is
port , cl in std$lo/ic"
e out std$lo/ic
end entit"
arcitecture 2ea3ioral o4 retardo$*+ms is
si/nal cont inte/er ran/e 0 to (9999999 5 0"
be/in
process,cl
be/in
i4 risin/$ed/e,cl ten
cont 65 cont 7 1"
e 65 808"
i4 cont 5 *+0000 ten
cont 65 0"
e 65 818"
end i4"
end i4"
end process"
end 2ea3ioral"
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 4/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
Contador.
)ste bloque es el encargado en llevar la cuenta* esta se incrementara después de
cada !" ms. que como /a $ue mencionado es una señal proveniente del retardo de
!" ms. ,)* este bloque consta de ! entradas el relo+ ,cl-* / la señal proveniente
del retardo ,)* también tiene 4 salidas que son la cantidad de centenas* decenas
/ unidades de la cuenta ,C*# / %. Para llevar la cuenta simplemente esperamos
la señal del retardo / en cuanto esta se da incrementamos uno al valor de las
unidades* cuando estas llegan a 5" entonces inicializamos las unidades e
incrementamos uno a las decenas / de igual manera en cuanto las decenas llegan
a un valor de 5" inicializamos las decenas e incrementamos uno a las centenas /
$inalmente cuando las centenas llegan a 5" inicializamos a las tres variables ,C* #
/ %.
3a descripción en 12#3 para este bloque es:
librar !EEE"
use !EEE.S#D$L%&!C$11'(.)LL"
entit contador is
port , cl in std$lo/ic"
e in std$lo/ic"
C D : inout inte/er ran/e 0 to 10
"
end contador"
arcitecture 2ea3ioral o4 contador is
be/in
process,cl
be/in
i4 risin/$ed/e,cl ten
i4 e 5 818 ten
: 65 : 7 1"
i4 : 5 10 ten
: 65 0"
D 65D 7 1"
end i4"
end i4"
i4 D 5 10 ten
D 65 0"
C 65 C71"
end i4"
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 5/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
i4 C 5 10 ten
C 65 0"
D 65 0"
: 65 0"
end i4"
end i4"
end process"
end 2ea3ioral"
Decodificador C, D y U.
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 6/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
#ebido a que la $unción / estructura de estos 4 bloques es igual los e'plicaremos
como uno solo* puesto que debemos visualizar la cuenta en 4 displa/s de 7
segmentos debemos codi$icar el valor binario al código de 7 segmentos* esa es la
$unción de este bloque codi$icar los valores para poder verlos en los displa/s* en
este bloque solo tenemos una entrada que es el valor de la cuenta de centena*
decena / unidad ,C* # / % respectivamente / como salida el valor codi$icado ,#C*## / #%.
)l código 12#3 quedo de la siguiente manera:
librar !EEE"
use !EEE.S#D$L%&!C$11'(.)LL"
entit DEC$C is
port , C in inte/er ran/e 0 to 9"
DC out std$lo/ic$3ector,' do;nto 0
"
end entit"
arcitecture 4uncion o4 DEC$C is
be/in
DC 65 <1111110< ;en C 5 0 else
<0110000< ;en C 5 1 else
<1101101< ;en C 5 * else
<1111001< ;en C 5 = else
<0110011< ;en C 5 ( else
<1011011< ;en C 5 + else
<1011111< ;en C 5 ' else
<1110000< ;en C 5 > else
<1111111< ;en C 5 ? else
<1110011< "
end 4uncion"
librar !EEE"
use !EEE.S#D$L%&!C$11'(.)LL"
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 7/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
entit DEC$D is
port , D in inte/er ran/e 0 to 9"
DD out std$lo/ic$3ector,' do;nto 0
"
end entit"
arcitecture 4uncion o4 DEC$D is
be/in
DD 65 <1111110< ;en D 5 0 else
<0110000< ;en D 5 1 else
<1101101< ;en D 5 * else
<1111001< ;en D 5 = else
<0110011< ;en D 5 ( else
<1011011< ;en D 5 + else
<1011111< ;en D 5 ' else
<1110000< ;en D 5 > else
<1111111< ;en D 5 ? else
<1110011< "
end 4uncion"
librar !EEE"
use !EEE.S#D$L%&!C$11'(.)LL"
entit DEC$: is
port , : in inte/er ran/e 0 to 9"
D: out std$lo/ic$3ector,' do;nto 0
"
end entit"
arcitecture 4uncion o4 DEC$: is
be/in
D: 65 <1111110< ;en : 5 0 else
<0110000< ;en : 5 1 else
<1101101< ;en : 5 * else
<1111001< ;en : 5 = else
<0110011< ;en : 5 ( else
<1011011< ;en : 5 + else
<1011111< ;en : 5 ' else
<1110000< ;en : 5 > else
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 8/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
<1111111< ;en : 5 ? else
<1110011< "
end 4uncion"
Retardo de ms.
)ste bloque como el primero solo se encarga de generar una señal de retardo de
( ms. pues como los displa/s están multiple'ados debemos 6acer la ilusión de
que los 4 están prendidos siempre eso lo podemos lograr escribiendo a cada uno
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 9/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
cada ( ms pues el o+o 6umano no tiene la capacidad de notar el momento en el
que estos están apagados* tiene como entrada el relo+ ,cl- / como salida una
señal para indicar el cambio de displa/ ,.
)l código 12#3 de este bloque es:
librar !EEE"
use !EEE.S#D$L%&!C$11'(.)LL"
entit retardo$+ms is
port , cl in std$lo/ic"
@ out std$lo/ic
"
end entit"
arcitecture 2ea3ioral o4 retardo$+ms is
si/nal cont inte/er ran/e 0 to (9999999 5 0"
be/in
process,cl
be/in
i4 risin/$ed/e,cl ten
cont 65 cont 7 1"
@ 65 808"
i4 cont 5 +0000 ten
cont 65 0"
@ 65 818"
end i4"
end i4"
end process"
end 2ea3ioral"
!"#ti$#e%or
Como /a mencionamos debemos 6acer la ilusión de que los tres displa/s están
prendidos* para poder lograr esto tenemos este bloque* pues es el que cada que
recibe la señal del retardo ,( ms pone una señal para un #ispla/ / lo 6abilita.
Tenemos 4 entradas el relo+ ,cl-* las señales decodi$icas para el #ispla/ de 7
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 10/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
segmentos ,#C*## / #% / la señal del retardo de ( ms ,* como entradasalida
tenemos a dos señales la que va a escribir a los displa/s ,#80 / la que va a
6abilitar el #ispla/ al que se debe escribir ,29.
)l código en 12#3 es:
librar !EEE"
use !EEE.S#D$L%&!C$11'(.)LL"
entit A:B is
port , cl in std$lo/ic"
DC DD D: in std$lo/ic$3ector,' do;nto 0"
@ in std$lo/ic"
D!S inout std$lo/ic$3ector,' do;nto 0"
)2 inout std$lo/ic$3ector,* do;nto 0
"
end A:B"
arcitecture 2ea3ioral o4 A:B is
si/nal ) inte/er ran/e 0 to ="
be/in
process ,cl
be/in
i4 risin/$ed/e ,cl ten
i4 @ 5 818 ten
) 65 )71"
end i4"
i4 ) 5 0 ten
D!S 65 DC"
)2 65 <100<"
elsi4 ) 5 1 ten
D!S 65 DD"
)2 65 <010<"
else
D!S 65 D:"
)2 65 <001<"
end i4"
i4 ) 5 = ten
) 65 0"
end i4"
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 11/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
end i4"
end process"
end 2ea3ioral"
96ora debemos unir estos bloques* esto se logra mediante un código principal de
en el cual vamos a mapear las señales de cada bloque* es decir* vamos a
conectar los bloques.
librar !EEE"
use !EEE.S#D$L%&!C$11'(.)LL"
entit cont$999 is
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 12/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
port ,cl in std$lo/ic"
D!S inout std$lo/ic$3ector,' do;nto 0"
)2 inout std$lo/ic$3ector,* do;nto 0
"
end cont$999"
arcitecture 2ea3ioral o4 cont$999 is
component retardo$*+ms is
port , cl in std$lo/ic"
e out std$lo/ic
"
end component"
component contador is
port , cl in std$lo/ic"
e in std$lo/ic"
C D : inout inte/er ran/e 0 to 9
"
end component"
component DEC$C is
port , C in inte/er ran/e 0 to 9"
DC out std$lo/ic$3ector,' do;nto 0
"
end component"
component DEC$D is
port , D in inte/er ran/e 0 to 9"
DD out std$lo/ic$3ector,' do;nto 0
"
end component"
component DEC$: is
port , : in inte/er ran/e 0 to 9"
D: out std$lo/ic$3ector,' do;nto 0
"
end component"
component A:B is
port , cl in std$lo/ic"
DC DD D: in std$lo/ic$3ector,' do;nto 0"
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 13/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
@ in std$lo/ic"
D!S inout std$lo/ic$3ector,' do;nto 0"
)2 inout std$lo/ic$3ector,* do;nto 0
"
end component"
component retardo$+ms is
port , cl in std$lo/ic"
@ out std$lo/ic
"
end component"
si/nal E$S!& @$S!& std$lo/ic"
si/nal C$S!& D$S!& :$S!& inte/er ran/e 0 to 9"
si/nal DC$S!& DD$S!& D:$S!& std$lo/ic$3ector,' do;nto 0
be/in
:1 retardo$*+ms port map , E 5 E$S!& cl 5 cl"
:* contador port map , cl 5 clE 5 E$S!&
C 5 C$S!&
D 5 D$S!&
: 5 :$S!&"
:= DEC$C port map , C 5 C$S!&
DC 5 DC$S!&"
:( DEC$D port map , D 5 D$S!&
DD 5 DD$S!&"
:+ DEC$: port map , : 5 :$S!&
D: 5 D:$S!&"
:' A:B port map , cl 5 cl
DC 5 DC$S!&
DD 5 DD$S!&
D: 5 D:$S!&
@ 5 @$S!&
D!S 5 D!S
)2 5 )2"
:> retardo$+ms port map , cl 5 cl
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 14/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
@ 5 @$S!&"
end 2ea3ioral"
Para la asignación de pines en la FP;9 creamos el siguiente arc6ivo .uc$:
NE# CL L%C 5 )10 "
NE# D!S60 L%C 5 21"
NE# D!S61 L%C 5 2("
NE# D!S6* L%C 5 C("
NE# D!S6= L%C 5 C'"
NE# D!S6( L%C 5 D'"
NE# D!S6+ L%C 5 E>"
NE# D!S6' L%C 5 E?"
NE# )260 L%C 5 C11"
NE# )261 L%C 5 N10"
NE# )26* L%C 5 D10"
)l diagrama de bloques de este sistema que genero 80) es el siguiente:
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 15/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
Podemos observar que quedo igual al que 6ab<amos realizado como diseño inicial
lo que nos dice que esta escrito correctamente seg=n a nuestro diseño.
#espués viene la implementación del circuito el cual es simplemente conectar
desde la FP;9 a los 4 displa/s el bus con la señal del código de 7 segmentos /
también la señal de 6abilitación que va a la base de unos transistores* el colector
de estos es conectado al cátodo de cada #ispla/ respectivamente / su emisor a
tierra* pues los transistores actuaran como interruptores.
C>?C3%08>?)0
7/17/2019 practica1_desarrollo.docx
http://slidepdf.com/reader/full/practica1desarrollodocx 16/16
Práctica No.1 Contador 0-999 SistemasEmpotrados
)n esta práctica tuvimos ciertos inconvenientes pues no quedaba la practica*
primero no nos mostraba el nueve debido a un error de programación en el cual
llevábamos la cuenta de unidades* decenas / centenas 6asta nueve e
inicializábamos las variables sin darles tiempo de que mostraran el n=mero nueve*
también tuvimos problemas con un #ispla/ pues este no prend<a / $ue debido a un
problema similar al anterior pues creamos una señal 9 para decidir a que #ispla/escribir / al #ispla/ de unidades le tocaba cuando 9 @ ! pero cuando esto se daba
también la inicializábamos por lo cual no de+ábamos que se 6abilitara este #ispla/.