Saludos Foristas!
Aqui les dejo un pequeño aporte, espero sirva de guia de para los que recien inician en el mundo de los Pic´s.
Se trata de un Marcador electronico para Basquet, es casi del tipo profesional en el sentido que tambien controla las faltas cometidas por los jugadores individualmente, el codigo esta dividido en dos partes, el programa principal basado en un PIC16f876a controlo la consola principal, 1 teclado 4x4, un LCD 2x16 y una comunicacion RS232(en la simulacion no estan las interfaces) que brinda movilidad al arbrito de hasta 25 metros de la consola principal al Panel de visualizacion. Para mostrar los datos en los 16 displays de 7 segmentos utilice un pic 16f870, que multiplexa los datos a mostrar( a mi parecer esta fue la opcion mas economica y eficiente para hacerlo) pues al comienzo pretendí untilizar 4 saa1064, pero no los consegui y los datos no se podrian transmitir tan lejos con esos integrados.
Ahora una pequeña explicacion del funcionamiento.
El Modo de Funcionamiento es el siguiente:
el programa comienza con ciertos mensajes bienvenida,
1º para salir de ese estado se debe presionar cualquier tecla.
2º Un mensaje de configuración pregunta si se desea un juego nuevo( borra toda la memoria) o si se desea cargar los datos almacenados.
3º Aparece un mensaje de instrucción d que solo se puede seguir si se presiona Start"A"
4º comienza la cuenta regresiva.
5º Para aumentar los puntos del equipo local en 1,2 o 3 se debe pulsar 1 2 o 3 respectivamente.
Para aumentar los puntos del equipo local en 1,2 o 3 se debe pulsar 4 5 o 6 respectivamente.
Cada incremento se almacena inmediatamente en la memoria interna del micro.
6º Si por cualquier motivo se desea parar el juego se presiona stop/start y se sale del estado de espera.
7º Si se presiona la tecla B, se pide la opción de tiempo muerto, que es 1 minuto, donde el teclado no responde a ningún incremento de puntajes ni otra opción. Pasado el minuto hay una alarma audible que indica que se termino el tiempo y bueno se carga el temporizador con los valores a visualizar y listo.
8º Si se presiona C se entiende cometieron falta a un jugador. El programa te pregunta que equipo la cometió, el equipo local o visitante. dependiendo de eso se incrementa las faltas generales que ha cometido el equipo local o el visitante en 1 unidad, el dato se graba en la eeprom inmediatamente.
Luego te pide que ingreses el numero distintivo del jugador que cometió la falta, ingresa el 1º y el 2ºdigito solo acepta números del 0 al 9, bueno como los números ingresados entran en Hex como unidades y decenas hago una rutina de multiplicación que transforma a un solo numero en Hex y corresponde a la dirección de memoria a grabar, pero esto depende si es del eq local o visitante, para que no se monte el dato si es local suma 0 a la dirección de memoria a grabar y si es visitante suma 100, bueno lee la dirección que contiene el numero de faltas personales de cada jugador, la incrementa en una unidad, y luego la graba y muestra en pantalla. Espera 1 segundo. luego
Carga el tiempo en modo estático( no se debe incrementar) y si es el equipo local para incrementar puntos anotado desde tiros libres se debe presionar 1, bueno el operador debe determinar si fueron 1,2 o tres saques. cuando termine se debe salir con la tecla"C" nuevamente.
Lo mismo es para el equipo visitante pero se debe presionar la tecla 4 para incrementar los puntos.
Para visualizar los datos se va a usar otro micro un 870, y que el 876 envie los datos serialmente mediante el protocolo RS232 al otro micro con un código de cabezera que indique a que registro se debe guardar para no enviar los 16 registros cada vez. y que este los maneje multiplezados.
Para concluir les digo que el codigo se puede mejorar en muchos aspectos( uno de ellos es que detengo el timer para que no evolucione el conteo, cambiando para que cuente eventos externos, es q el PC se me colgaba cada q simulaba de otra forma) pero como se me acerco la fecha de entrega ya no lo pude mejorar ni optimizar. Funciona ok aca tambien les dejo unas fotos del proyecto implementado en PCBs.
Posibles ampliaciones muchas, agregarle sensores de humedad y temperatura, que la comunicacion entre la consola principal y el Panel sea Wireless, una pequeño cartel pasante para animar al publico entre otras.
Cualquier duda o sugerencia no duden en contactarme, estamos para ayudarnos.
Un abrazo!
L.E.S.S.