Autor Tema: Sumador de monedas, problema con el programa  (Leído 2121 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado joseluismart2

  • PIC10
  • *
  • Mensajes: 1
Sumador de monedas, problema con el programa
« en: 04 de Diciembre de 2012, 19:38:20 »
Hola, soy José Luis, vengo a hacerles un cuestionamiento, espero puedan ayudarme.

Tengo un circuito, lo adjunto, está en Isis (Proteus), que se compone de un PIC16F873A,de 5 interruptores con optoacopladores y 4 displays de 7 segmentos.

La función del circuito es para un sumador de monedas, se supone que cuando pasa una moneda, interrumpe la luz en determinados optos, según el tamaño de la moneda; la moneda mas grande (en México es la de 10 pesos) bloquea los 5 optos, y la mas pequeña solo uno. Las monedas las simule en Isis con unos switches. Se deben ir sumando los valores, segun su tamaño, y mostrar la suma en un display.

El programa del PIC consta de varios módulos:

    El que interpreta los valores que le mandan los sensores y los suma en un contador. ("Registro de monedas" en el *.asm que adjunto)
    El que separa las unidades de las decenas de lo que está en el contador. ("Traspaso de contador a unidades y decenas" en el *.asm que adjunto)
    El que toma los valores de las unidades y decenas y los despliega en los displays. (Toda la primera parte del *.asm que adjunto)


El tercero no es de mi autoría, lo saque de un código que ví en internet (al final dejo mis referencias). Los otros 2 si, los hice como pude, jejeje.

Probé el primero en un circuito de un solo digito, y si los suma, o sea, si sirvió.
Probé el tercero con solo un interruptor, y tambien funcionó.

El problema es a la hora de juntarlos, ya que para hacer que el tercer modulo (que toma valores separados de decenas, unidades y centenas) funcione con el primer módulo (que guarda toda la suma en un solo registro, o sea, en binario) solo se me ocurrió hacerlo con el segundo módulo, pero no funciona.

Por favor, les pido amablemente que le den una mirada al código y me puedan orientar por donde está el problema. Gracias.


***Referencias***
En estos proyectos he basado el codigo que subí.