practica1_desarrollo.docx

16
Practica No. 1 Contador 0-999 Facultad De Ciencias De La Electrónica  Alumnos: Daniel Escalona Pérez  Juan Manuel González Delgadil lo  José Emiliano Moreno Ca rmona Luis Pineda Rosales  Adán Márquez Ramos Benemérita Universidad Autónoma De Puebla

Upload: danielescalona

Post on 08-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

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/.