# 2 Semaforos Y Contador



## diegoltorres1 (Dic 4, 2014)

buenas tardes vengo a pedirles ayuda con un codigo ya llevo un poco de avance solo me faltan unos detalles programo en ccs y uso proteus para simular tambien otro dato importante programo en binario.
Uso el pic: 16f877a


son 2 semaforos que al precionar un push button empieza el ciclo de los semaforos y al presionar otro push button los semaforos se ponen en rojo y empieza un conteo de 25 hasta llegar a 0 despues siguen su ciclo los semaforos.
Los contador los uso con dos 74ls47 y 2 display de 7 seg de anodo comun 
Gracias por su ayuda


----------



## D@rkbytes (Dic 4, 2014)

diegoltorres1 dijo:


> Buenas tardes. Vengo a pedirles ayuda con un código, ya llevo un poco de avance, sólo me faltan unos detalles, programo en ccs y uso proteus para simular, tambien otro dato importante, programo en binario.


¿Y qué es lo que llevas hecho?
Adjunta tu proyecto completo dentro de un archivo comprimido para que puedas recibir colaboración.


----------



## diegoltorres1 (Dic 4, 2014)

ahi esta en .rar el circuito de proteus y el programa de ccs espero su ayuda me urge es para mañana gracias 


olvide mencionar que cuando el ciclo de los semaforos este en proceso se encienda el led rojo al momento de parar y estar los 2 semaforos en rojo y el contador en decremento este encendido el led verde al momento de llegar a 0 el led rojo encien y por logico el verde se apaga.


----------



## D@rkbytes (Dic 5, 2014)

diegoltorres1 dijo:


> Espero su ayuda, me urge, es para mañana. Gracias.


Pues a ver si te da tiempo de ver el programa. 
Como tu simulación es un caos, opté por realizar otra mas ordenada.
Nota que no coloqué resistencias para los LED ni para los displays.
Si montas el circuito físicamente, si debes usarlas. 


diegoltorres1 dijo:


> Olvidé mencionar que cuando el ciclo de los semáforos esté en proceso, se  encienda el led rojo al momento de parar y estar los 2 semáforos en  rojo y el contador en decremento esté encendido el led verde, al momento  de llegar a 0 el led rojo encienda y por lógico el verde se apaga.


Prueba el código que adjunto,  a ver si así es como quieres que funcione.


----------



## diegoltorres1 (Dic 5, 2014)

valla esta pérfecto solo tengo una duda como hago que al finalizar el conteo siga el ciclo de los semaforos sin precionar nada gracias


----------



## D@rkbytes (Dic 5, 2014)

diegoltorres1 dijo:


> Vaya, está perfecto, sólo tengo una duda. ¿Cómo hago que al finalizar el conteo siga el ciclo de los semáforos sin presionar nada?
> Gracias


Sencillo, eliminando la sentencia *if* para el pulsador y dejando dentro del bucle *while* únicamente la llamada a la subrutina 'semaforos'


----------



## diegoltorres1 (Dic 5, 2014)

Ya lo intente pero ahora funciona sin precionar al poner run al proteus se incian los semaforos y al finalizar el contador ahi se quedan en rojo pero muy bueno gracias de antemano como te doy puntos o rep?


----------



## D@rkbytes (Dic 5, 2014)

diegoltorres1 dijo:


> Ya lo intenté pero ahora funciona sin presionar, al poner run al proteus se inician los semáforos y al finalizar el contador ahí se quedan en rojo, pero muy bueno.


Entonces deja la sentencia* if* para el pulsador y envuelve la rutina 'semaforos' dentro de un bucle *while*.
Así ya no se iniciará la rutina al iniciar el programa, pero cuando se presione el botón, al estar la rutina dentro de un bucle, de ahí ya no saldrá, pero se detendrá cuando ocurra la interrupción y después continuará el programa justamente donde se quedó antes de que ocurriera la interrupción.
Ahora lo que tengas qué modificar ya no te será complicado.


diegoltorres1 dijo:


> Gracias de antemano. ¿Cómo te doy puntos o rep?


De nada. 
Aquí no se dan puntos, pero si puedes usar el botón "Me Gusta" y/o calificar el tema.

Suerte.


----------

