Generar numero aleatorio (0-F) y mostrarlo en display

Hola de nuevo!

Ya he conseguido medio solucionar el problema

Ya tengo los dos programas, el de Airoa Airon y el de Vick sin ningun error al ensamblar.

He conseguido ver que el contador funciona, poniendo un registro Mediante Dir.Hex. en 0C, segun pasa el tiempo va contando entre 0 y F sin ningun problema. Hasta ahi perfecto!

La cuestion ahora es, como puedo demostrar que funciona correctamente con el simupic? Como va a funcionar eso de darle al pulsador, es decir, como o donde voy a poder darle para que el contador pare y aparezca el numero aleatorio?

Como puedo demostrar que ese numero aleatorio se visualizaria en el display? (No se, el simupic este es muy simple, pero eso de que no sea nada visual hace que me lie)


Bueno, a ver si solucionando estas dudas, lo tengo ya funcionando sin problemas

Graciassssssss!
 
bugmenot dijo:
Hola de nuevo!

Ya he conseguido medio solucionar el problema

Ya tengo los dos programas, el de Airoa Airon y el de Vick sin ningun error al ensamblar.

He conseguido ver que el contador funciona, poniendo un registro Mediante Dir.Hex. en 0C, segun pasa el tiempo va contando entre 0 y F sin ningun problema. Hasta ahi perfecto!

La cuestion ahora es, como puedo demostrar que funciona correctamente con el simupic? Como va a funcionar eso de darle al pulsador, es decir, como o donde voy a poder darle para que el contador pare y aparezca el numero aleatorio?

Como puedo demostrar que ese numero aleatorio se visualizaria en el display? (No se, el simupic este es muy simple, pero eso de que no sea nada visual hace que me lie)


Bueno, a ver si solucionando estas dudas, lo tengo ya funcionando sin problemas

Graciassssssss!

Ya he conseguido averiguar como utilizar el pulsador, los pulsadores se encuentran en F1, F2, F3...Al darle se para en el numero aleatorio y al darle otra vez continua la cuenta, hasta volver a pulsar. Perfecto!

Ya se tambien como saber si se visualizaria en el display. Perfecto!

El unico fallo que veo (he usado el programa de Vick arreglando varias cosillas que me daban algun fallo no se porque) es que cuando sale un numero aleatorio (por ejemplo 0011, que seria 3) luego las salidas que activaria en el display son (11011010, que en el display seria 2). Es muy raro, tiene que ser un error pequeño, pero no averiguo cual puede ser..

Graciaaaaaaaas!
 
Olvidé mencionar ese detalle, el valor de contador si te fijas se inicializa en h'10' (16 decimal) dado que al llegar a cero se recarga inmediatemente, si hubiera inicializado el contador en h'0F' nunca obtendrías el cero, debido a esto.

Así inicializandolo en 10h y al obtener el equivalente en 7 segmentos se decrementa el valor en uno, de esa forma los valores obtenidos van de 0 a F, es por eso que el contador tiene uno más que el valor mostrado en el display, ya que el valor del contador quedará siempre entre 1h y 10h.

Al decrementar el contador en la subrutina siete_seg el valor se almacena directamente en W para enviarlo al puerto B, si quieres obtener el mismo valor en el display y en contador, cambia esta línea de la subritina siete_seg:

decf contador, 0

Por:

decf contador, 1
movf contador, 0


Saludos.
 
Vick dijo:
Olvidé mencionar ese detalle, el valor de contador si te fijas se inicializa en h'10' (16 decimal) dado que al llegar a cero se recarga inmediatemente, si hubiera inicializado el contador en h'0F' nunca obtendrías el cero, debido a esto.

Así inicializandolo en 10h y al obtener el equivalente en 7 segmentos se decrementa el valor en uno, de esa forma los valores obtenidos van de 0 a F, es por eso que el contador tiene uno más que el valor mostrado en el display, ya que el valor del contador quedará siempre entre 1h y 10h.

Al decrementar el contador en la subrutina siete_seg el valor se almacena directamente en W para enviarlo al puerto B, si quieres obtener el mismo valor en el display y en contador, cambia esta línea de la subritina siete_seg:

decf contador, 0

Por:

decf contador, 1
movf contador, 0


Saludos.

Perfecto! Todo funciona bien, muchisimas gracias Vick por toda tu ayuda, sin ti no hubiera conseguido lograrlo

Gracias tb a los demas que han intentado ayudar.

Gracias!
 
:D Me alegra que por fin pudiste hacerlo funcionar en el simulador que utilizas, realmente no era muy complicado el ejercicio, solo hay que practicar un poco con la programación.

Si tienes más dudas del funcionamiento del programa dinos.

Saludos.
 
Atrás
Arriba