TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: sanchoweb en 04 de Agosto de 2003, 14:49:00
-
Soy yo y mis dudas otra vez

Ahora mi pregunta de principiante es la siguiente:
Hay alguna instrucción para restar un número en binario a otro, por ejemplo:
0101
- 0001
---------
0100
Gracias.
Ah, y ya que estamos necesito otro para sumar.
-
No importa si lo sumas en binario, decimal, octal o hexadecimal.
La suma es suma y la resta es resta.
Pones cada numero dentro de una variable y luego haces:
B1=B2-B3
o
B1=B3+B2
Despues el resultado lo podes visualizar en el formato numerico que elijas....
-
Yo entiendo lo que me querés decir, pero te explico de que se trata lo que estoy haciendo para que me puedas ayudar un poco más.
Lo que estoy haciendo es una ruleta, apretas un botón y de forma aleatoria se elige un led. Ahora cada led tiene un valor (algunos positivos y otros negativos), en un display se indica el valor inicial de la partida, que son 3 créditos, y dependiendo de lo donde para la "luz" en los leds se sumarán o restarán créditos.
Entonces primero arme un contador interno para la elección aleatorea. Y luego de elegido el led, se pasa a la parte de cada uno, es decir que la luz de 3 vueltas y caiga en el led determinado por el contador.
Quiero aclarar que los leds (son 8) están todos en el puerto b, en el puerto a están el boton de encendido y apagado, el start y me quedan tres pines para mostrar en un display cuantos creditos me quedan
Dentro de cada led, arme el siguiente código:
;en el led siete el usuario pierde 2 créditos
SIETE CLRF PORT B ;por las dudas
CALL VUELTAS ;gira la ruleta tres veces
CLRF PORT B ;por las dudas
MOVLW B"00000001"
MOVWF PORT B ;después de las vueltas
SIETE1 CALL RETARDO
RLF PORT B ;rota la luz
BTFSS PORTB,6
GOTO SIETE1 ;si no esta prendida
Y acá llega el problema, yo quiero que a mi resultado anterior que tenía en mi display, recordar que siempre es un resultado y no un número fijo, se le resten dos creditos (que corresponden a este led)
Lo que yo hice, por el momento, fue mostrar en otros dos displays la ganancia o la pérdida...
BSF PORTA, 3
BCF PORTA, 4
BCF PORTA, 2
GOTO INICIO
esto hace que entregen los pines RA3 Y RA4 dos bits correspondientes a un número en binario y el pin RA2 el signo. Por medio de un decodificador los paso a un display de 7 segmentos.
Pero, para que no te pierdas, mi pregunta es la siguiente, cómo hago para que dependiendo del valor del led que me toque se le sume o se le reste este mismo valor a lo que yo tengo en el display (que va variando a medida que se desarrolla el juego)?
Muchas Gracias.
Y otra cosa, como hago para que cuando llegue a cero o a nueve el display se resetee el pic y empiece de nuevo el juego??
Ahora si, muchas gracias.
Sancho
-
A ver si lo puedo solucionar así; mientras yo escribo en Asembler en el Pic 16f84, yo puedo poner, por ejemplo, las siguientes instrucciones?:
dato1 = dato1+1
dato2 = dato2 - 1
Se puede hacer eso o solo se pueden escribir las intrucciones del tipo:
ADDWF
ANDWF
Sancho.