Hola amigos!
Me pongo en contacto con ustedes para pedirles un poco de luz
Necesito hacer un proyecto para un paintball
Quiero que tenga dos cosas:
Por un lado un contador regresivo de 4 bcd que cuente minutos y segundos que sea programable en los minutos y segundos mediante pulsadores. He encontrado ejemplos con 16f84A y un decoder pero no se si directamente 4 bcd se pueden conectar diirectamente al 16F877 y emplear el mismo codigo que con el proyecto del 16F84A y que me quede un puerto libre para lo siguiente:
quiero simular un juego de policias y ladrones, quiero que cogiendo una entrada del pic16f877 vallan a sus pines unos cables que aleatoriamente se configure para cuando tenga que cortarlos si no es la entrada aleatoria aumente la velocidad de contaje o dispare un buzzer.
Es decir: Tengo 8 cables que van desde VCC hasta el puerto C. Cuando tengan que desconectar el circuito si cortan el cable que esta como entrada, se desconecta el temporizador. En caso contrario si cortaran el cable que no esta configurado como entrada aumentara la velocidad o disparar un buzzer.
Veo varias cosas que no se como despejarlas (programo en basic)
Por un lado si genero un numero aleatorio de 8 bits como puedo conseguir que solo contenga un UNICO 0 y el resto siete 1 pero que ese UNICO 0 sea aleatorio entre los 8 bits cada vez que se le de al pulsador de start
Supongo que la solucion seria trabajar poniendo todo como entradas (TRISC=%11111111) y un bucle que compare el estado de las entradas que mientras no corten un cable seran todas 1 al estar en VCC.
Pero encuentro que en la comparacion fallaria porque mientras no corten un cable siempre sera diferente al numero aleatorio y por tanto sonaria el buzze...
Como creen ustedes que se podria hacer esa comparacion para que solo comparara en caso de que un cable hubiera sido cortado? Con un pulsador? es decir antes de cortar que pulse el boton y corte un cable y realice la comparacion? habria alguna manera de hacerlo de manera automatica?
Y para hacerlo mas interesante se podria hacer que tengan dos oportunidades es decir que la primera comparacion si han fallado aumente la velocidad de contaje y en un segundo intento si vuelven a fallar que salte el buzz (Todo esto sin cambiar el numero aleatorio que le hemos dado al principio)
Es un poco complicador pero no quiero que me lo resuelvan del todo sino me den alguna ayuda en el tema del comparador y si es viable poder ponerle directamente los 4 bcd + pulsadores de control (1 start, 1 stop y reset) + la entrada de 8 cables los cuales tienen que cortar.
Muchas gracias de antemano
Saludos
Me pongo en contacto con ustedes para pedirles un poco de luz
Necesito hacer un proyecto para un paintball
Quiero que tenga dos cosas:
Por un lado un contador regresivo de 4 bcd que cuente minutos y segundos que sea programable en los minutos y segundos mediante pulsadores. He encontrado ejemplos con 16f84A y un decoder pero no se si directamente 4 bcd se pueden conectar diirectamente al 16F877 y emplear el mismo codigo que con el proyecto del 16F84A y que me quede un puerto libre para lo siguiente:
quiero simular un juego de policias y ladrones, quiero que cogiendo una entrada del pic16f877 vallan a sus pines unos cables que aleatoriamente se configure para cuando tenga que cortarlos si no es la entrada aleatoria aumente la velocidad de contaje o dispare un buzzer.
Es decir: Tengo 8 cables que van desde VCC hasta el puerto C. Cuando tengan que desconectar el circuito si cortan el cable que esta como entrada, se desconecta el temporizador. En caso contrario si cortaran el cable que no esta configurado como entrada aumentara la velocidad o disparar un buzzer.
Veo varias cosas que no se como despejarlas (programo en basic)
Por un lado si genero un numero aleatorio de 8 bits como puedo conseguir que solo contenga un UNICO 0 y el resto siete 1 pero que ese UNICO 0 sea aleatorio entre los 8 bits cada vez que se le de al pulsador de start
Supongo que la solucion seria trabajar poniendo todo como entradas (TRISC=%11111111) y un bucle que compare el estado de las entradas que mientras no corten un cable seran todas 1 al estar en VCC.
Pero encuentro que en la comparacion fallaria porque mientras no corten un cable siempre sera diferente al numero aleatorio y por tanto sonaria el buzze...
Como creen ustedes que se podria hacer esa comparacion para que solo comparara en caso de que un cable hubiera sido cortado? Con un pulsador? es decir antes de cortar que pulse el boton y corte un cable y realice la comparacion? habria alguna manera de hacerlo de manera automatica?
Y para hacerlo mas interesante se podria hacer que tengan dos oportunidades es decir que la primera comparacion si han fallado aumente la velocidad de contaje y en un segundo intento si vuelven a fallar que salte el buzz (Todo esto sin cambiar el numero aleatorio que le hemos dado al principio)
Es un poco complicador pero no quiero que me lo resuelvan del todo sino me den alguna ayuda en el tema del comparador y si es viable poder ponerle directamente los 4 bcd + pulsadores de control (1 start, 1 stop y reset) + la entrada de 8 cables los cuales tienen que cortar.
Muchas gracias de antemano
Saludos