Problema con MPLAB al simular

Hola, hace poco baje el MPLAB 8.36 de microchip, debido a que necesito programar en assembler para un proyecto en la universidad,, como primer paso para explorar el mplab hice un pequeño programa solamente para ver como podia hacer el debuggeo, etc.

Pero al comenzar a debuggear no entiendo por que no me cambia los bits de los puertos A,B,C,D,E :confused:.

Por ejemplo:

main:
BSF PORTA,1
CALL PAUSA
BCF PORTA,1
CALL PAUSA
y de vuelta al main.

Nada complicado,, pero como dije al debuggearlo paso por paso,, puedo cambiar todos los demas registros, pero estos los cambio y en la ventana de "watch" no se modifica ningun bit,, queda siempre en 00h. (me refiero a los puertos)

Me pregunto si alguno sabe la solucion a este problema,, o es algo que eh configurado mal yo,, aunque por lo que vi no tiene mucho para hacerlo. El debugger que uso es el MPLAB SIM. El mismo que aparece en la ayuda.

Ahh... casi me olvido,, lo probe dentro del isis y andaba perfectamente,, pero me hubiera gustado q se viera en en el MPLAB tambien. Y una cosa mas,, espero haber acertado el subforo donde va esto :rolleyes:.

Desde ya muchas gracias
 
Hola me imagino que no cambian los bits que quieres modificar en el PORTA? fijate sí has seteado correctamente el TRISA; ademas fijate si alguno de los bits estan por defecto como comparadores, si es asi verifica con el manual del chip como debes setear los módulos que comparten esos pines
Saludos
 
Gracias,, el TRISA esta bien seteado,, lo probe,, pero no me di cuenta q podian estar como comparadores,, pero hay algo mas raro todavia,, yo probe con todos los puertos, y ninguno me anda ^^,, las patas de los comparadores son algunas nomas.. me parece raro
 
Mira yo lo habia borrado,, y empeze a programar uno q realmente me hacia falta ^^, la cosa es q lo volvi a hacer, por que en realidad no costaba nada ya q es muy simple y sigo teniendo el mismo resultado

Código:
    LIST    P=16F887
    INCLUDE    <P16F887.INC>
    
    CBLOCK H'20'
        PASOPRE
        PASOFX
    ENDC
    
RESET    ORG        H'00'
        GOTO    INICIO
        ORG        H'04'
INTERR

INICIO
    BANKSEL    TRISA
    CLRF    TRISA
    BANKSEL    PORTA
    BSF        PORTA,1
    CALL    PAUSE
    BCF        PORTA,1
    CALL    PAUSE
    CALL    PAUSE
    GOTO    INICIO
PAUSA
    MOVLW    0xFF
    MOVWF    PASOPRE
PAUSA1
    MOVLW    0xFF
    MOVWF    PASOFX
BUCLE1
    DECFSZ    PASOFX
    GOTO    BUCLE1
    DECFSZ    PASOPRE
    GOTO    PAUSA1
    RETURN
    END
Como dije nada complicado, a los registros de los comparadores no los eh tocado, por que por defecto estan en 0x00 lo cual me los inabilita. Y sea cual sea el puerto me sigue pasando lo mismo.
 
creo que te falto inicializar el cero los registros ad
prueba con
banksel ANSEL
CLRF ANSEL
BANKSEL ANSELH
CLRF ANSELH
antes de setear el TRISA
eso esta explicado el el datasheet del micro
saludos

disculpa; solo es necesario un solo BANKSEL ANSEL porque ambos registros estan en el mismo banco
saludos
 
Última edición:
Disculpa pero tampoco es eso, los registros son ADCON0 y ADCON1 si no me equivoco,, los uso para mi otro programa, para habilitar las entradas del A/D,, y como todos estan en 00h una ves comienzan ^^. lo cual no me las habilita :S.. Es por eso que estoy bastante perdido,, voy a probar desinstalarlo e instalarlo nuevamente,, aunque lo demas anda todo je. Gracias por ayudarme.

P.D: Y esta bien lo de los banksel,, se encuentran en el banco 0 y 1 respectivamente. :D
 
Última edición:
Amigo yo lo probe y es eso pruebalo por favor si no seleccionas previamente cuales de los AN son digitales o analogos los considera todos como analogos; me tome la molestia de bajar la documentacion correspondiente en Microchip; cargue un nuevo proyecto con el codigo que me enviaste y le añadi el seteo del ANSEL y funciono,previas correciones de sintaxis en el programa.
saludos

ojo no me refiero al tema de los bancos(banksel) sino el seteo correcto de los registros ANSEL y ANSELH. mira el datasheet por favor
Saludos

Código:
LIST    P=16F887
    INCLUDE    <P16F887.INC>
    
    CBLOCK H'20'
        PASOPRE
        PASOFX
    ENDC
    
RESET    ORG        H'00'
        GOTO    INICIO
        ORG        H'04'
INTERR

INICIO
	banksel	ANSEL  ;banco 3
	CLRF	ANSEL   ;todos digitales i/o
	CLRF	ANSELH
    BANKSEL    TRISA
    CLRF    TRISA
    BANKSEL    PORTA
    BSF        PORTA,1
    CALL    PAUSE
    BCF        PORTA,1
    CALL    PAUSE
    CALL    PAUSE
    GOTO    INICIO
PAUSE
    MOVLW    0xFF
    MOVWF    PASOPRE
PAUSA1
    MOVLW    0xFF
    MOVWF    PASOFX
BUCLE1
    DECFSZ    PASOFX,F
    GOTO    BUCLE1
    DECFSZ    PASOPRE,F
    GOTO    PAUSA1
    RETURN
    END
 
Última edición por un moderador:
Mil disculpas y un millon de gracias :D,, aunque en el datasheet decia q los registros esos se iniciaban en 00h cuando el PIC se resetea, despues en otra parte decia que era necesario darle el valor correspondiente.

Je y yo que lo habia desinstalado y vuelto a instalar je...:rolleyes:, gracias de vuelta
 
Atrás
Arriba