Registro de desplazamiento: Caja Fuerte

Las ideas para generar proyectos con sistema digital secuencial son abundantes, en particular para esta práctica se deberá implementar un circuito secuencial para una caja fuerte la cual debe seguir las siguientes pautas:

  • El ingreso de datos se realizará por medio de un teclado matricial, el cual debe permitir ingresar los números en orden consecutivo. Así como debe permitir borrar el último dato ingresado si se desea.
  • La caja fuerte debe permitir ingresar y/o cambiar una clave de acceso a la misma, esto siempre y cuando la cerradura de la caja se encuentre abierta.
  • Luego de ingresar la clave para desbloquear, se debe oprimir un botón para empezar a comparar con la clave registrada, puesto que si no, la caja sería fácil de hackear.
  • Debe permitir máximo tres intentos erróneos de clave, dado el caso en que suceda, automáticamente se debe proceder a bloquear el teclado durante 20 segundos. Esto con el fin de que la caja posea una mayor seguridad.
  • Si la clave ingresada es igual a la guardada, la caja puede ser abierta.

-Materiales:

  • PSoC 5LP
  • Protoboard
  • Teclado matricial de botones 4×4
  • LED’s
  • Display 7 segmentos ánodo común
  • Cables y resistencias
  • Demultiplexor 74138

-Desarrollo de la práctica:

En las anteriores prácticas de laboratorio únicamente teníamos la posibilidad de ingresar un solo dato, para esta veremos como ingresar los datos de manera consecutiva. Para ello haremos uso de un concepto nuevo.

Registros de desplazamiento:

Un registro de desplazamiento es un circuito que permitirá desplazar la información binaria en una dirección o en otra. Se conforma de bi-estables (Flip Flops) conectados en cascada y de manera síncrona; es decir, la frecuencia del reloj es la misma para todos.

Según las conexiones entre los Flip Flops, se puede obtener un desplazamiento hacia la izquierda o a la derecha de los datos. Cuando se desplaza a la izquierda es como si se multiplicara por 2, mientras que a la derecha, como si se dividiese entre 2.

Según las conexiones que se realicen entre los Flip Flops, podemos obtener un desplazamiento hacia la izquierda o a la derecha de los datos. Un desplazamiento a la izquierda se comporta como si se multiplicara por 2, mientras que uno a la derecha como si dividese entre 2.

Registro de desplazamiento universal:

El registro de desplazamiento universal permite realizar transferencias de datos en paralelo, serie, desplazamiento a la derecha y a la izquierda. Por lo tanto será de gran utilidad para poder ingresar los datos consecutivamente y para borrar, puesto que borrar será desplazar el dato al lado contrario al que se ingresa.

Registro de desplazamiento universal

Luego de entender como funcionan los registros, los creamos en PSoC para su utilización en la práctica. Quedan de la siguiente manera:

Registro de desplazamiento
Registro de desplazamiento universal

Este registro permitirá que la entrada del teclado se pueda hacer de manera seguida, ingresa un número, inmediatamente el otro y así sucesivamente. Este programa no permite aún que solamente se ingresen 4 números, por el contrario permitirá que se sigan ingresando número perdiendo así los primeros dato asignados, únicamente quedaran para comparar al momento de ingresar «enter», los últimos 4 datos.

La base fundamental del programa será la caja comparadora, los demás componentes son entradas por teclados matricial, y las consecuencias de estado como lo son conteo de errores, deshabilitador de teclado y demás.
La caja comparadora funciona de la siguiente manera:

Se tendrá el registro de los dos valores ingresados, el primer valor se guardará en la memoria y con un comparador de registros se podrá revisar si el dato ingresado de clave corresponde a la clave previamente guardada

El contador de tiempo, es un componente nuevo para esta práctica, será útil al momento de contar los segundo que dure oprimido el botón de ingreso de nueva clave, así como para el tiempo que el teclado se encontrará deshabilitado. Su función es la misma que un contador normal, solo cambia el hecho de que como queremos contar tiempo, colocaremos a la salida con una AND el número al que queremos que cuente, y con la frecuencia del reloj haremos que este genere ciclos de tiempo hasta llegar al número configurado.
Es decir, si colocamos a la salida del contador el número binario 1010 y una frecuencia de 1Hz, obtendremos un contador de 5 segundos. También se puede pensar, en términos de uso de memoria, que si jugamos con la frecuencia y el número de la salida podemos generar menos gasto.

Deshabilitar el teclado se puede decir que es una tarea algo simple, cuando el contador de errores llegue a 3, el pulso que genera el LED que se encuentra encendido irá a la entrada de las filas del teclado. Haciendo así, que no se pueda escribir nada.

Para la visualización utilizaremos el mismo circuito que tenemos de las anteriores prácticas con un ligero cambio, habilitando las entradas y el selector del Display de miles. También lo encapsulamos en un componente para su mayor facilidad de trabajo.

El esquemático total a compilar y seguidamente programar es el siguiente:

Top Desing: Parte1
Top Design: Parte 2

Los resultados de la práctica se muestran a continuación:

Montaje físico.
Diseña un sitio como este con WordPress.com
Comenzar