Está en la página 1de 10

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84

JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

Resumen En este proyecto se construy un reloj digital que controle el tiempo de una partida de ajedrez, implementando el pic16f84. Este reloj se le puede ingresar el tiempo deseado hasta 99 minutos, adems consta de tres pulsadores que controla la detencin y arranque de los relojes de cada jugador en este orden: el pulsador de la derecha detiene el reloj del jugador 1 y a la vez arranca el reloj del contrario y el de la izquierda hace lo contrario; el pulsador del centro detiene los dos relojes , con el fin de darle autoridad al juez de la partida(penalizacin, revisin , etc.)Cuando uno de los dos relojes llega a cero se detiene los relojes, hasta que se resetee el sistema, adems tiene dos pulsadores que acomoda los minutos de cada jugador. Hay que tener en cuenta que este control tiene modalidad FISHER, que consiste en que cuando uno de los jugadores le falte 1 minuto de juego se activa una rutina de incremento de 5 segundos cada vez que juegue y oprima su pulsador. INTRODUCCIN Los avances tecnolgicos del juego ciencia, se han destacado definitivamente a desafiar a los mejores jugadores del mundo , a jugar ajedrez contra supercomputadoras que estn definidas, con una base de datos completa de casi todas las combinaciones , finales, aperturas de este juego,en hacer plataformas de ajedrez por Internet, ajedrez en videojuegos , ajedrez virtual... ect..Una

de las reglas oficiales de una partida de ajedrez es el limite de tiempo. En Colombia el furor del ajedrez es cada vez mas alto, y los juegos rpidos (pinpon ) con limite de tiempo muy pequeos (minutos), cautivan a los jugadores principiantes a estudiar mas este arte. Hoy en da las partidas rpidas se juegan en modalidad Fisher(pequeos incrementos de tiempo por jugada), que de alguna manera le da un poquito mas de emocin a este juego, pero los relojes digitales de hoy, que tienen esta opcin son muy costosos, y estn fuera del alcance de los jugadores de escasos recursos. En este proyecto mostraremos la construccin de un reloj digital, con un costo considerablemente bajo, y con las opciones principales de este juego ciencia en el control del tiempo. Objetivos 1. Hacer el programa en ASM, para el control de los displays y la rutinas de tiempos, por medio del sofware MPLAB. 2. Disear e implementarla mltiplexacin de los pulsadores que se utilizaran para este proyecto, por la limitante de puerto del PIC. 3. Montar la etapa de control de displays de 7 segmentos por medio de decodificador 7447 (modo barrido (interfaz micro display)).

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

Circuito de control de tiempo. El circuito es muy sencillo que consta del microcontrolador, 16f84, un decodificador de 7 segmentos para el control del display y 8 transistores PNP 2n3906, para el control de los comundes de los displays. - El microcontrolador PIC16f84: Este es un dispositivo electrnico capaz de llevar, procesos lgicos. Estos procesos o acciones son programados en lenguaje ensamblador por el usuario, y son introducidos a travs de un programador. Este PIC tiene una memoria tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje, ya que no requiere borrarlo con luz ultravioleta, sino permite reprogramarlos nuevamente sin necesidad de borrar el programa con anterioridad

En la figura anterior se puede observar las configuracin de pines del PIC16f84, lo cual consta de dos puertos(A,B), que se pueden configurar como entrada y salida, pin de reset, y de mas elementos. Este micro, trabaja con n oscilador de 4 Megaherz. Foto del micro PIC16f84

La figura siguiente muestra conexiones del circuito:

la

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

La explicacin del funcionamiento del circuito es el siguiente : - El puerto B del micro, controla por medio de un barrido, es decir que en un instante de tiempo , pin a pin va pasando un 0 que activa cada transistor (el transistor esta conectado tal que se activa con un 0 (tierra)), cuando el display se active sea como va el barrido, por medio del puerto A del micro se manda el dato al integrado decodificador 7 segmentos, que a su vez pone el dato en el display activado.

- Como solo queda un pin libre (RA4), este se utiliza como entrada nica .La conexin de los pulsadores esta tal que, cuando este el cero por el pin 1 del puerto B, sepa por medio de software que es el pulsador 1, ya que en ese instaste se pregunta por el pin de entrada RA4, en otras palabras el pulsador, refleja el cero del pin 1 del puerto B al pin de entrada RA4. esta misma conexin esta para los dems pulsadores, teniendo una excelente mltiplexacin para saber que pulsador se esta activando.

- Fotos del montaje preliminar en protoboard :

En esta foto se puede observar, lo sencillo del montaje, donde consta de :

1. Unin de cada punto en comn de cada display (a con a, b con b, ect...)para conectar por decirlo as, los ochos displays al decodificador de 7

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

segmentos (74LS47), dndole el control de cada display por su comn, la cual son conectados con transistores PNP (2N3906 o 2N2907), en conexin de corte y saturacin. 2. La conexin de los pulsadores de ingreso de datos y los del control de

stop y arranque de cada reloj, se basa como se fue explicado anteriormente. 3. El microcontrolador, tiene una resistencia de 2k, en la entrada unica RA4, conectada a VCC, actuando como resistencia PULL UP.

Programa El programa esta tal que controla los puertos de salida seleccionados y el pin de entrada nico para saber que pulsador esta funcionando en ese momento:
include "p16f84.inc" list p=16f84 ; declaracion de variables en posiciones de memoria pc equ 02h status equ 03h ptoa equ 05h ptob equ 06h tecla equ 0ch loop equ 0ah loop2 equ 0eh rota equ 0fh tecla2 equ 10h trisa equ 85h trisb equ 86h z equ 02h c equ 00h w equ 00h dis1 equ 21h dis2 equ 22h dis3 equ 23h dis4 equ 24h dis5 equ 25h dis6 equ 26h dis7 equ 27h dis8 equ 28h aux equ 29h aux1 equ 2ah aux2 equ 2bh aux3 equ 2ch reset org goto org 0 inicio 5

;rutina de retardo, tiempo de activacion de los transistores retardo movlw movwf top2 movlw movwf top nop nop nop nop nop nop decfsz goto decfsz goto retlw d'2' loop d'100' loop2

loop2 top loop top2 0

;rutina de retardo, antirebotes en los pulsadores retard1 movlw movwf to2 movlw movwf to nop nop nop d'250' loop d'250' loop2

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

nop nop nop decfsz goto decfsz goto retlw

loop2 to loop to2 0

bcf xorlw btfss call movlw movwf goto

status,z d'0' status,z array3 d'0' rota pri1

;rutia de retardo, tiempo de apagado del transistores retard2 movlw movwf to3 movlw movwf to4 nop nop nop nop nop nop decfsz goto decfsz goto retlw d'1' loop d'100' loop2

;sub rutinas "arrays", para control de tiempo jugador uno... viene de juga1 array3 movlw movwf movwf movlw movwf decfsz goto goto array2 movlw movwf movlw movwf decfsz goto goto array1 movlw movwf decfsz goto goto array d'9' dis5 dis7 d'5' dis6 dis8 pri1 pri1 d'9' dis5 d'5' dis6 dis7 pri1 pri1 d'9' dis5 dis6 pri1 pri1

loop2 to4 loop to3 0

;rutina de decremento del reloj del jugador 1 juga1 decfsz retlw movlw movwf movf xorlw btfss call movf xorlw btfss call movf xorlw btfss call movf tecla 0 d'46' tecla dis5,w d'0' status,z array dis6,w d'0' status,z array1 dis7,w d'0' w,z array2 dis8,w

decfsz dis5 goto pri1 goto pri1

;rutina de decremento del reloj del jugador 2 juga2 decfsz retlw movlw movwf movf xorlw btfss call
Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

tecla2 0 d'46' tecla2 dis1,w d'0' status,z array4

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

movf xorlw btfss call movf xorlw btfss call movf bcf xorlw btfss call movlw movwf goto

dis2,w d'0' status,z array5 dis3,w d'0' status,z array6 dis4,w status,z d'0' status,z array7 d'0' rota pri1

movwf dis3 movwf dis7 retlw 0 cargar2 movlw movwf movwf retlw d'0' dis4 dis8 0

; rutina manejo control de asignacion de tiempo a cada jugador al pulsar minuto unidad salir call call movf xorlw btfss goto incf incf movf xorlw btfsc call movlw movwf retlw retard1 retard1 rota,w d'0' status,z voy dis3 dis7 dis3,w d'10' status,z cargar d'0' rota 0

;sub rutinas "arrays", para control de tiempo jugador dos... viene de juga2 array7 movlw movwf movwf movlw movwf decfsz goto goto array6 movlw movwf movlw movwf decfsz goto goto array5 movlw movwf decfsz goto goto d'9' dis3 dis1 d'5' dis2 dis4 pri1 pri1 d'9' dis1 d'5' dis2 dis3 pri1 pri1 d'9' dis1 dis2 pri1 pri1

voy

;rutina manejo control de asignacion de tiempo a cada jugador al pulsar minutos decimal salir1 call call movf xorlw btfss goto incf incf movf xorlw btfsc call movlw movwf retlw retard1 retard1 rota,w d'0' status,z voy1 dis4 dis8 dis4,w d'10' status,z cargar2 d'0' rota 0

array4 decfsz dis1 goto pri1 goto pri1 cargar movlw d'0'

voy1

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

; pulsador segundo jugador "salir2", manipulando rota detiene el reloj y pone andar el del contrario ;manipulando rota en 1 salir2 call movf xorlw btfsc goto movlw movwf movf xorlw btfss goto movf xorlw btfss goto call vamos retlw retard1 rota,w d'1' status,z vamos d'1' rota dis4,w d'0' status,z vamos dis3,w d'0' status,z vamos intre 0

vamos1 retlw

;***rutina para incremento cuando va menos de 1 minuto primer jugador intre movf xorlw btfss goto movf addlw movwf movlw subwf btfsc call movf movwf retlw movf xorlw btfss goto goto movwf movf addlw movwf xorlw btfss call movlw movwf movlw movwf goto dis2,w d'0' status,z ha dis1,w d'5' aux d'10' aux,0 status,c corre aux,w dis1 0 dis1,w d'0' status,z aja chao dis1 dis2,w d'1' aux1 d'6' status,z cam d'0' dis2 d'1' dis3 vengo

aja

chao ha

;subrutina del pulsador del juez, para los dos relojes.. manipulando rota en 0 corre salir3 call movlw movwf retlw retard1 d'0' rota 0

; pulsador primer jugador "salir4" ;manipulando rota en 2 salir4 call movf xorlw btfsc goto movlw movwf movf xorlw btfss goto movf xorlw btfss goto call retard1 rota,w d'2' status,z vamos1 d'2' rota dis8,w d'0' status,z vamos1 dis7,w d'0' status,z vamos1 intre1

cam

movf aux1,w movwf dis2 goto vengo

;*** ;**rutina para incremento cuando va menos de 1 minuto segundo jugador intre1 movf xorlw btfsc goto movf dis6,w d'0' status,z ha1 dis5,w

aja1

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

chao1 ha1

addlw movwf movlw subwf btfsc call movf movwf retlw movf xorlw btfss goto goto

d'5' aux2 d'10' aux2,0 status,c corre1 aux2,w dis5 0 dis5,w d'0' status,z aja1 chao1 dis5 dis6,w d'1' aux3 d'6' status,z cam1 d'0' dis6 d'1' dis7 vengo1

bsf movlw movwf movlw movwf bcf

status,5 1f0h trisa 00h trisb status,5 ;hasta aqui

configurtacion del puerto pri1 movlw 0ffh movwf ptob movf dis1,w movwf ptoa call retard2 movlw 0feh movwf ptob call retardo ;hasta muestra el dato por display 1 movf ptoa,w andlw d'16' xorlw b'10000' btfss status,z call salir ;pregunto por pulsador 1 movlw movwf movf movwf call movlw movwf call 0ffh ptob dis2,w ptoa retard2 0fdh ptob retardo ;hasta aqui aqui

corre1 movwf movf addlw movwf xorlw btfss call movlw movwf movlw movwf goto cam1

movf aux3,w movwf dis6 goto vengo1

;** ;Programa principal ... donde se hace el barrido para el control del display ; y lectura del los pulsadores inicio movlw movwf movwf movwf movwf movwf movwf movwf movwf movlw movwf movwf d'0' dis1 dis2 dis3 dis4 dis5 dis6 dis7 dis8 d'46' tecla tecla2

muestra el dato por display 2 movf ptoa,w andlw d'16' xorlw b'10000' btfss status,z call salir1 ;pregunto por pulsador 2 movlw movwf movf movwf call movlw movwf call 0ffh ptob dis3,w ptoa retard2 0fbh ptob retardo

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

;hasta muestra el dato por display 3 movf ptoa,w andlw d'16' xorlw b'10000' btfss status,z call salir2

aqui muestra el dato por display 6 movlw 0ffh movwf ptob movf dis7,w movwf ptoa call retard2 movlw 0bfh movwf ptob call retardo

;hasta

aqui

;pregunto pulsador 3 vengo movlw movwf movf movwf call movlw movwf call 0ffh ptob dis4,w ptoa retard2 0f7h ptob retardo ;hasta muestra el dato por display 4 movf ptoa,w andlw d'16' xorlw b'10000' btfss status,z call salir3 ;pregunto pulsador 4 movlw movwf movf movwf call movlw movwf call 0ffh ptob dis5,w ptoa retard2 0efh ptob retardo ;hasta muestra el dato por display 5 movf ptoa,w andlw d'16' xorlw b'10000' btfss status,z call salir4 ;pregunto pulsador 5 vengo1 movlw movwf movf movwf call movlw movwf call 0ffh ptob dis6,w ptoa retard2 0dfh ptob retardo aqui aqui

;hasta muestra el dato por display 7 movlw 0ffh movwf ptob movf dis8,w movwf ptoa call retard2 movlw 07fh movwf ptob call retardo ;hasta muestra el dato por display 8

aqui

aqui

;las siguientes lineas me pregunto por el estado del juego ;es decir, esta jugando player 1 o player 2 ; ademas control el tiempo en segundos por tecla y tecla2 ;rota es la variable que me controla que jugador juega, o si no ha empezado el juego. movf xorlw btfsc goto movf xorlw btfsc call movf xorlw btfsc call goto end rota,w d'0' status,z pri1 rota,w d'1' status,z juga1 rota,w d'2' status,z juga2 pri1

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES CONTROL DEL TIEMPO DE UN JUEGO DE AJEDREZ CON PIC 16F84
JESUS A. BEDOYA FERNANDO A. DUARTE Jesus_Bedoya@latinmail.com Fernandoduarte75@hotmail.com

CONCLUSIONES Y RECOMENDACIONES - En este proyecto, se aprendi a manejar los puertos de tal forma que la limitante de pines para entradas y salida se redujeron considerablemente por esta tcnica de mltiplexacin Programando con una buena lgica , se pudo reducir el circuito del control de tiempo a solamente los display y un decodificado, gracias al control de estos por medio de barrido, a los comunes.
-

- Los pulsadores de entrada se pueden incrementar hasta 8, (8 pines puerto b), luego se puede mejorar considerablemente, las opciones de este reloj digital que controla el tiempo de un juego de ajedrez.

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

También podría gustarte