Práctica #19

     Nombre de la práctica : Contador de dos Dígitos ascendente-descendente

Nombre: David Santiago Martínez Molina

Código: 20181005164

Asignatura: Fundamentos de circuitos digitales

Programa : Ingeniería Electrónica

Docente : César Andrey Perdomo Charry


INTRODUCCIÓN: 

En el presente informe se mostrará el desarrollo de la práctica #19. Para esta práctica tenemos un contador de dos dígitos ascendente y descendente. A dicho contador se le podrán ingresar sus respectivos límites superior e inferior, que son muy importantes a la hora de realizar el conteo. A lo largo de este informe se evidenciará la manera en que se implemento dicho contador y además se explicarán los componentes utilizados para su correcto funcionamiento. 

MATERIALES Y EQUIPOS:

    -Psoc 5LP   
    -Computador con Psoc Creator  
    -Tarjeta desarrolladora.
    -Cables con conectores.
    -Barra de Leds
    -Pulsador.

METODOLOGÍA:  


Primeramente se tiene el decodificador de teclado matricial desarrollado en practicas anteriores, este decodificador es necesario ya que el ingreso de los límites será mediante un teclado matricial, entonces se tiene:

Pero hay que tener en cuenta que los límites ingresados tienen que ser BCD, o sea un número de 0 a 9, por ende hay que deshabilitar las teclas que son mayores a 9, que en este caso son A,B,C,D, * y #. Para poder realizar esto primeramente se desarrolla un componente que me permite identificar cuando la tecla oprimida es mayor que 9, mediante un comparador de 4 bits se puede lograr esto. De esta manera el componente corresponde a:

Ahora se necesitan 2 bancos de memoria para poder guardar el límite superior e inferior ingresados por el usuario. Dichos bancos ya se habían realizado en prácticas anteriores, de esta manera el circuito realizado es:

La entrada M9 es la procedente del comparador de cuando el número ingresado es mayor a 9, de esta manera se observa que cuando este es 1, no se tendrá un pulso de reloj, por ende ya se tienen deshabilitados los números mayores a 9. 
Para habilitar cada banco  es necesario crear un identificador de las teclas A, B y D, ya que al presionar la tecla A se podrá ingresar el límite inferior y después de esto se presiona la tecla B y se ingresa el límite superior y posteriormente se presiona la tecla D para confirmar ambos datos y empezar el conteo. Por ende se tiene:
   

Y para que se puedan activar dichos bancos de memoria, se realiza a través de 2 flip-flop SR, que me habilitan y des-habilitan cada banco dependiendo la tecla que se presione, por ende se tiene:

De esta manera ya se tienen ambos límites en cada banco de memoria, ahora lo que procede es realizar el contador. El contador mencionado será realizado en verilog, ya que puede ser una mejor opción en cuestión de espacio. El código realizado queda de la siguiente manera:



Y el símbolo del componente queda así:
Como tenemos un contador de 2 dígitos, por ende es necesario conectar dos contadores para obtener el resultado deseado. De esta manera la salida O, me va a indicar cuando el primer contador llegué a su límite máximo, que fue definido anteriormente. También se observa en el código, que dependiendo de si los límites ingresados son mayores o menores el uno al otro, se tiene el conteo ascendente o descendente. Entonces tenemos que la unión de los contadores queda:

De esta manera ya se tiene el contador. Ahora queda realizar la visualización dinámica del dígito ingresado en ambos bancos y el respectivo conteo. Para esto se utiliza primeramente un Mux 4 a 1, donde cada entrada es un bus de 8 bits, ya que nuestro contador tiene una salida de 8 bits. Como se tienen 2 selectores, se necesita tener un circuito con compuertas en el cual se tengan los respectivos valores de dichos selectores, dependiendo lo que se tenga que visualizar. Por ende el multiplexor y el circuito que controla los selectores corresponde:

Ahora para la parte de visualización dinámica, se utiliza otro Mux de 4 a 1, donde cada entrada es de 4 bits. Los selectores de este mux son las salidas de un contador de 2 bits, que a su vez van conectados a un deco 2 a 4, que me permite poner en 0 los comunes de los displays 7 segmentos, como ya se venía trabajando anteriormente. La salida del Mux va conectada al respectivo decodificador BCD a 7 segmentos. Entonces la implementación de visualización dinámica queda:


ANÁLISIS DE RESULTADOS:  

Con todo lo anterior, el respectivo montaje en la placa desarrolladora corresponde a:


En el siguiente vídeo se muestra su funcionamiento:

CONCLUSIONES: 

-Al implementar los contadores en verilog, se puede observar que si consume menos espacio que si se hubieran realizado mediante compuertas, también se pudo aprender más como se implementan circuitos mediante este lenguaje, describiendo su comportamiento.

FUENTES:

- Simulador utilizado : Psoc 5LP.
- Floyd, T. (2006). Fundamentos de Sistemas Digitales (9.a ed., Vol. 1). Madrid, España: PEARSON EDUCACIÓN.