Buenas gente del foro ...
Quería venir con este proyecto terminado pero no he sido capaz de hacerlo funcionar correctamente.
Resulta pues que me encomendaron realizar un sistema de semáforos que muestre un contador regresivo sobre el supuesto tiempo para que cambie. La idea es tener microcontroladores que se hagan cargo de mostrar el conteo y se comuniquen entre sí para sincronizar los conteos que hacen y los cambios de las luces.
En primer lugar, consulté si es posible comunicarse usando el estándar rs232 con el pic16f84 (ya que priori sabia que carece de modulo UART USART, o como sea que se llame
) supuestamente si, pero tuve excesivos dolores de cabeza tratando de hacer que recogiera datos por lo que desistí de usarlo y me pasé para el 16f628 que si tiene, pensando de nuevo que me sería mas fácil, y que tiene oscilador interno entre otras cosas por lo que el puerto a y b me quedarían completamente libres.
Ahora que adapté el programa resulta que lo mas simple que es mostrar el contador resulta que no funciona. :| Parece ser que debo tener alguna clase de configuración adicional que desconozco, del oscilador o del puerto la verdad no se.
En este momento, esta cosa se compone de dos pics que se comunicarían mediante rs232, en donde uno de ellos haría el conteo regresivo mediante dos 74ls47 y enviaría este dato al otro y si cambia de luces enviaría algo para identificar este estado (un 100 para rojo y 101 para verde) ya que el contador debería poder contar hasta 99 (supuestamente 1 min y 30 segs mas o menos, el tiempo y su exactitud no son un factor importante).
Por favor observar que hay una formulita tonta para pasar correctamente los valores numéricos a los BCD. El código, esquema (en proteus) y demás los podrán encontrar en el archivo adjunto y su funcionamiento en el vídeo youtube.
Obvio que es muy probable que encuentren brutalidades y cosas que no deberían ser en el código por lo que me disculpo ya que no soy conocedor de ccs (compilador que estoy usando) y tampoco se mucho de estos bichos del infierno (los uC).
Entonces el código funcionaba excelente con el 16f84 simulando en proteus. Pero ahora el valor de la decena no se muestra como debería, muestra un número que no corresponde. Si se fijan en el bcd hay unos colores grises que no se que significan.
Alguna tontería será por desconocimiento, pero he buscado y tratado de todo y aun no funciona por lo que agradecería si me echasen un cable.
Espero que al menos sirva de guía para otras cosas.
Por cierto, si observan los caracteres de la terminal virtual verán que tampoco corresponden pero esto es harina de otro costal
Quería venir con este proyecto terminado pero no he sido capaz de hacerlo funcionar correctamente.
Resulta pues que me encomendaron realizar un sistema de semáforos que muestre un contador regresivo sobre el supuesto tiempo para que cambie. La idea es tener microcontroladores que se hagan cargo de mostrar el conteo y se comuniquen entre sí para sincronizar los conteos que hacen y los cambios de las luces.
En primer lugar, consulté si es posible comunicarse usando el estándar rs232 con el pic16f84 (ya que priori sabia que carece de modulo UART USART, o como sea que se llame
Ahora que adapté el programa resulta que lo mas simple que es mostrar el contador resulta que no funciona. :| Parece ser que debo tener alguna clase de configuración adicional que desconozco, del oscilador o del puerto la verdad no se.
En este momento, esta cosa se compone de dos pics que se comunicarían mediante rs232, en donde uno de ellos haría el conteo regresivo mediante dos 74ls47 y enviaría este dato al otro y si cambia de luces enviaría algo para identificar este estado (un 100 para rojo y 101 para verde) ya que el contador debería poder contar hasta 99 (supuestamente 1 min y 30 segs mas o menos, el tiempo y su exactitud no son un factor importante).
Por favor observar que hay una formulita tonta para pasar correctamente los valores numéricos a los BCD. El código, esquema (en proteus) y demás los podrán encontrar en el archivo adjunto y su funcionamiento en el vídeo youtube.
Obvio que es muy probable que encuentren brutalidades y cosas que no deberían ser en el código por lo que me disculpo ya que no soy conocedor de ccs (compilador que estoy usando) y tampoco se mucho de estos bichos del infierno (los uC).
Entonces el código funcionaba excelente con el 16f84 simulando en proteus. Pero ahora el valor de la decena no se muestra como debería, muestra un número que no corresponde. Si se fijan en el bcd hay unos colores grises que no se que significan.
Alguna tontería será por desconocimiento, pero he buscado y tratado de todo y aun no funciona por lo que agradecería si me echasen un cable.
Espero que al menos sirva de guía para otras cosas.
Por cierto, si observan los caracteres de la terminal virtual verán que tampoco corresponden pero esto es harina de otro costal