UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS
INGENIERIA ELECTRONICA
MATERIA
FUNDAMENTOS DE CIRCUITOS DIGITALES
GRUPO 005-1
SALOMON FELIPE RAMIREZ BUITRAGO
20182005041
DOCENTE
CESAR ANDREY PERDOMO CHARRY
27 DE JULIO DEL 2020
INTRODUCCION
En esta práctica se desarrollará un sumador y restador con ingreso por teclado matricial, de manera similar al ingreso por DIP SWITCH, sin embargo, para esta práctica sólo necesitaremos el ingreso de un dígito, por lo que no será necesario desarrollar el circuito con base en el uso de 6 bits.
Podemos usar sólo 4 bits, ya que con estos cubrimos las operaciones de suma y resta para un sólo dígito.
MATERIALES
PSoC Creator 4.3.
PSoC 5LP
Tarjeta de desarrollo
Jumpers
METODOLOGIA
Gracias a la adquisición de nuevo material para poder trabajar, este laboratorio ha sido implementado de manera tangible.
Con el uso de una PSoC 5LP y una tarjeta de desarrollo con varios componentes, se realizarán todos los laboratorios posteriores.
En este laboratorio se nos han dado indicaciones de como deben ser las conexiones:
Además se deben cumplir unas condiciones iniciales para la manipulación del sistema. Dichas condiciones son dadas con base en las entradas que posee el teclado matricial (caracteres alfanuméricos y algunos especiales):
0 al 9 --> son habilitados para ingresar el A o el B
*--> Suma
# --> Resta
A --> Se visualiza A
B --> Se visualiza B
C --> Se visualiza el resultado de la operación (suma o resta)
D --> Se ejecuta la operación
También tenemos un flujo de operación inicial que nos indica el funcionamiento del montaje:
Inicialmente el sistema tiene habilitado el ingreso de A el cual debe ser un numero entre 0-9. Durante este paso se debe visualizar el dato A en el display.
Luego de ingresado se debe presionar * para suma o # para resta, al hacer esto se confirma el dato A y se habilita el banco de memoria B.
Se ingresa B el cual debe ser un numero entre 0-9. Durante este paso se debe visualizar el dato B en el display.
Se presiona D se visualiza el resultado es decir D funciona como el igual.
Si se presiona A se visualiza A.
Si se presiona B se visualiza B.
Si se presiona C se visualiza el resultado.
En un principio, se desarrolla un teclado matricial, como el que se desarrollo en el laboratorio 11, ya que la entrada del dígito se hará por medio de este. Sin embargo, esta vez se acoplarán los circuitos del teclado y el traductor en uno sólo:
Debido a que vamos a trabajar los números en formato BCD, como ya se ha venido trabajando en el transcurso del semestre, es necesario implementar un comparador. Ya que no vamos a trabajar más allá en el uso de 4 bits, este debe ser sólo de 4 bits. Este comparador lo haremos a partir del comparador de 2 bits diseñado desde la práctica 12:
Teniendo listo el comparador de 4 bits, le agregamos la condición en la que nos va a detectar cuando un número sea mayor a 9. Lo hacemos poniendo en binario el número 9 (1001) a la entrada de B:
Tras tener listo el decodificador del teclado y el comparador de 4 bits, desarrollamos el banco de memoria, el cuál consta de un arreglo de Flip Flops tipo D, con el propósito de almacenar los datos a recibir desde el teclado. Esta memoria es capaz de almacenar datos de 4 bits, por lo que el arreglo debe tener 4 Flip Flops. Se adiciona la entrada (Habilitador) con el propósito de servir como selector en los bancos de memoria, permitiendo almacenar un dato sin que reciba modificaciones, también se agrega una entrada CLK junto a otra M9 que son las que van a tener el clock de cada uno de los Flip Flops por medio de una compuerta AND. Se pone una compuerta NOT en la condición para mayor a 9 debido a que se hrá 1 si el número es mayor a 9 y de esta forma se deshabilitarán los Flip FLops, para evitar que guarden el dato:
Ahora, es necesario indicar los botones que usaremos para las operaciones de suma y resta. Debido al flujo de operación estos deben ser el * y el # respectivamente. Por lo que crearemos un selector, que nos permita detectar en qué caso se está usando el uno o el otro. Por la lógica que se ha usado en los laboratorios anteriores, debemos definir estos 2 botones como el número 14 (en binario 1110) para el * y el número 15 (en binario 1111) para el #. Teniendo como resultado:
Ahora si tendríamos una parte del bloque principal del circuito, que sería el que nos permitiría recibir un dato entre 0 y 9, poder elegir una operación a realizar y poder habilitar el siguiente banco de memoria. Para que pueda pasar al siguiente banco de memoria, añadimos FLip FLops del tipo SR, conectado a la salida de una compuerta OR desde el selector de suma o resta con la entrada S y permaneciendo su entrada R en 0:
Por el lado del comparador de 4 bits, procedemos a realizar el sumador de 4 bits. A diferencia del laboratorio 10, en este diseño se opta por realizar el complemento a 1 por separado. El complemento a 1 se realiza para poder hacer el complemento a 2, que dará lugar a la resta del caso en el que el primer número sea menor al segundo. Para hacer el sumador de 4 bits, debemos crear el sumador de 2 bits y por medio de la unión de varios de estos, creamos el de 2. El sumador de 2 bits, al igual que en la práctica 10, se ha realizado con MUX de 16 a 1:
También se ha creado el complemento a 1 correspondiente al uso de los 4 bits, para llevar a cabo resta de ser necesaria. Este se ha realizado a partir de compuertas XOR en las entradas para A y B:
Otro subcircuito que se ha desarrollado para esta práctica es el conversor de binario a BCD, debido a que la entrada que se le está ingresando al circuito es de tipo binaria, es necesario traducir esto a un sistema en el que sea más sencillo interpretarla información. Para pasar esta información, se hace uso del integrado 74LS185. Como este circuito sólo tiene la posibilidad de convertir 5 bits, se utiliza un arreglo formado por 3 de estos (Reciclando el circuito de la práctica 12). En PSoC hacemos uso de la herramienta LUT para crear el circuito, haciendo uso de la tabla de verdad que nos proporciona su hoja de datos:
Y debido a que vamos a realizar la visualización por medio de Displays, debemos realizar el conversor de BCD a 7 segmentos, para esta tarea, optamos el uso de compuertas universales, como se hizo en el laboratorio 10:
Ahora, debido a que manejamos 4 Displays, es necesario conectar y poner a 0 los pines comunes que poseen, por lo que es necesario usar un decodificador de 2 a 4, que nos ayudará en esta tarea, junto con otros componentes que vemos más adelante:
Para la visualización,primero se debe desarrollar un circuito que permita poder elegir qué letra se quiere visualizar, por lo que se crea un selector en el que se podrá optar por la letra que se vaya a emplear dependiendo de las necesidades del flujo de operación:
Para poder visualizar cada uno de los resultados, dependiendo de la tecla que se oprima, según el flujo de operación, se agrega el circuito de las visualizaciones. Esto se hace a partir de la traducción de cada letra a código binario, teniendo: A el número 10 (1010), B el número 11 (1011), C el número 12 (1100) y D el número 13 (1101) :
Se debe mostrar el correcto funcionamiento de los números solicitados, por lo que haremos uso del enable como se hizo en la práctica 10 y del circuito al que se correspondía que sólo se encendiera el segmento g (en caso de que el número ingresado en A sea menor al ingresado al B), sólo que en este diseño, se ha optado por unificarlos:
Ahora podemos realizar la incorporación de todos los subcircuitos para dar desarrollo a el sumador y restador de 4 bits:
En la totalidad del circuito, adicional a los componentes que ya se habían mencionado, tenemos un arreglo de compuertas AND, que van a servir para determinar cuál de los dos números ingresados debe ser complementado. Para poder realizar la visualización dinámica, se han multiplexado las entradas de los datos, por lo que usamos MUX de 4 a 1 y en cada entrada del MUX, mandamos un bus de datos de 7 bits. Además de agregar el contador de 2 bits a una frecuencia alta, para que la percepción visual nos permita ver todo como si fuera un solo tomo del número.
Vídeo demostrativo del montaje:
ANÁLISIS DE RESULTADOS
Algunos circuitos serán omitidos en esta sección, debido a que ya han sido trabajados en otras prácticas de manera detallada y puntual.
Para el decodificador de 2 a 4 se estableció la siguiente tabla:
A partir de esta tabla, sacamos las expresiones:
CONCLUSIONES
Gracias al uso del microcontrolador PSoC 5LP y a sus diversas funciones y flexibilidad, podemos implementar circuitos que de manera tradicional serían básicamente irrealizables o muy tediosos.
De manera similar al laboratorio 12, se tuvo un correcto funcionamiento en la práctica, permitiendo llevar de manera satisfactoria el flujo de operación.
WEBGRAFIAS
[1]. Documento correspondiente al laboratorio 14.
Comments