Vereis os explico, he exo este bucle:
Codigo:
WAIT BTFSC PORTA,0
CALL MUE_CEN
BTFSC PORTA,1
CALL MUE_DEC
BTFSC PORTA,2
CALL MUE_UNI
BTFSC PORTA,3
GOTO RESET
GOTO WAIT
Con esto lo que trato de hacer es que, esté rastreando constantemente las puertas RA0 hasta RA3, y cuando detecte que se ha pasado de un 0 a un 1, es decir, se ha activado ese pulsador, para no complicarlo muxo, he supuesto que solo se podrá pulsar uno cada vez, una vez detecte pulsación se invocará a la subrutina pertinente, si no detecta nada al akabar el ciclo se vuelve a llamar a WAIT, y ahi estaremos hasta q se pulse alguna, pues bien, si lo simulo con el mpsin funciona perfectamente, pero si pongo el pic en la Trainer no va como deberia....... para q funcione bien (en la trainer) tngo q tener las RA a 1, y entonces al ponerlas a 0 es cuando funciona, es decir, justo al reves de lo que se supone he programado........alguien lo entiende??? pq yo no :P
Gracias
estoy apunto de que me de algo
... vamos a ver, la instruccion:
btfsc --> mira si el bit X del registro Y, está a 0, y si es así salta la instruccion que tiene acontinuacion no??
lo mismo con btfss --> pero mira que esté a 1, si lo está salta la instruccion que le precede.......
o eso es lo q tengo entendido, pero bien, ahora voy y leo esto:
http://www.todopic.com.ar/asm/_PRINCIPIANTES/contador_decimal_de_pulsos.TXT
Codigo:
ciclo btfsc porta,0 ; pregunto si el pulsador S1 está oprimido
goto ciclo ; si no lo está continuo revisándolo
call retardo ; si está oprimido retardo 100 ms
Algo se me escapa... me toi volviendo loco seguro... 
me voy a dormir... x favor iluminadmeee 
Gracias