Documentos de Académico
Documentos de Profesional
Documentos de Cultura
26-09-2019
Leonardo Martinez Florez – 20141005105, Nyky Joel Alfonso – 20132005982, Andrés Prieto Celis – 20141005211
Resumen: Para la presente practica se hizo el diseño e componentes internos que le permiten al usuario fi-
implementación de un reloj para ajedrez. Cada uno de nal implementar funcionalidades de forma discreta
los jugadores introduce su tiempo de partida que es con-
figurado por medio de botones, principalmente por un y tediosa. Reduce el tiempo invertido en los mon-
botón aceptar y otro que incrementa los tiempos tanto tajes de hardware, requeridos en cualquier diseño.
de segundos como de minutos y los asocia al tipo de Para efectos de este laboratorio se necesita imple-
jugador. Esto haciendo uso del modulo timer del Psoc
y realizando la visualización los tiempos en una LCD mentar un reloj de ajedrez que permita a cada uno
caracter. de los jugadores configurar su tiempo de juego por
medio de la utilización de pulsadores para tal fin.
Se plantea realizar la temporización del tiempo de
Palabras clave: Timer,Interrupcion,Pulso,Clock,LCD, partida de cada jugador mediante el uso del bloque
visualizacion. Timer incluido internamente en el Psoc. Cuando
el tiempo de alguno de los jugadores ha llegado a
su fin, este se queda en cero y el tiempo del otro
1. INTRODUCCIÓN jugador sigue corriendo hasta que este oprima el
botón de pausa.
En el presente documento se aborda la solución que
se le da al problema de implementar con un bloque
timer e interrupciones un reloj de ajedrez digital 3. DISEÑO Y MODELO DE SOLUCIÓN
programable que funcione perfectamente para una
partida de ajedrez cualquiera. El reto para esta
práctica es la utilización de interrupciones para el A partir de del problema planteado en la guia de
control del sistema y la posterior visualización en laboratorio se prosiguio a diseñar el algoritmo de
el bloque LCD el cual se encuentra como bloque solucion que posteriormente fue codificado en im-
utilizable en Psoc Creator. plementado en bloques.
1
dicho bloque fue utilizado con la configuración que
trae por defecto, sin caracteres Propios, y con la
conversión ASCII a Números.
2
estos botones poseen una configuración típica de
botón, con un Drive mode de resistencia pull up,
sin conexión Hardware, y con la interrupciones de-
tectadas por flanco de baja como se muetsra en las
figuras 6 y 7
Figure 7: botones e interrupciones utilizados Las interrupciones son las pausas que ejecuta el sis-
tema por medio de un evento asociado al hardware
que congela el estado de la palabra de contador del
programa, y por ende toma una rutina paralela que
se encarga de cumplir ciertas funcionalidades, en
todas la interrupciones presentes en el diagrama de las cuales se quiere evadir su ejecución secuencial
bloques están configuradas con el tipo DERIVE, y sincrónica con el orden de las instrucciones.
3
3.2.1.1 Botón_blancas y Botón_negras
4
una bandera llamada Flag y con dicha bandera ac- En estas interrupciones se inicia el tiempo del con-
tivada procedemos a realizar las operaciones nece- trincante y se detiene el tiempo del jugador que
sarias. presione su botón esto se logra con una condición
primero recibimos el valor correspondiente al ul- simple donde cambie el "Turno" donde se encuen-
timo dígito de minutos, luego el siguiente y así tre el juego cambiando así el tiempo que se re-
hasta formar el tiempo que el jugador desee duce, estas interrupciones también tiene un anti-
colocar, esto se realiza con ciclos while man- rebote tal como se implemento en las interrup-
teniendo la interrupción hasta que se cumplan ciones Boton_blancas y Boton_negras.
diferentes condiciones que son oprimir el botón,
"subir" las veces que se desee con un cursor
que indica el numero en el cual esta modifi- 3.2.1.3 Timerr
cando y luego oprimiendo el botón "aceptar"
para confirmar su elección de tiempo y así los
cuatro valores requeridos para el tiempo los
cuales se guardan en las variables cont,cont1
cont2,cont3,cont4,cont5,cont6,cont7,cont8, estos
valores tiene sus respectivas condicionales que no
dejan que el tiempo pase de 60:59 esto para cumplir
el requerimiento del proyecto. Al finalizar toda
la configuración el jugador puede oprimir nueva-
mente el botón "aceptar" y su configuración queda
guardada en las variables temp, tem2, temp3,
temp4, que indican los minutos y segundos de
las variables "cont" de ambos jugadores y con los
cuales se trabajará posteriormente para su visual-
ización.
5
Juego blancas o negras dependiendo de cuan ter-
mino.
4. RESULTADOS
Figure 13: Bloque principal del codigo
Se obtuvo un resultado favorable al implementar
el diseño propuesto para la solución del problema
en la Psoc, para nuestro caso se montó lo nece-
sario para que la LCD funcionara correctamente en
una protoboard siguiendo los esquemáticos propor-
cionados por el profesor, y se vio que el proyecto
cumplía las reducciones de tiempo en los tiempo
requeridos de un segundo, y la visualización se re-
frescaba en el mismo tiempo, el cambio de con-
tador se hacía de la manera propuesta, utilizando
3.2.3 Concatenación y visualizacion de los pulsadores correspondientes para cada jugador que
datos permitiera que el tiempo del jugador contrario cor-
riera una vez se paraba el tiempo al oprimir el
pulsador correspondiente, y además generando un
Esta se produce mediante la función visual_Type, sonido a través de un buzzer cada vez que el tiempo
la cual toma un parámetro, con este desdice que de alguno llegaba a su fin.
tipo de concatenación generar y además permite
dar un control a los datos depositados por el La implementación del proyecto se ve en la Figura
usuario. 15:
6
haciendo mas entendible el código que se im-
plemento y el funcionamiento el proyecto par
el usuario.