Hola compañeros de este foro pues veran tengo una duda de por que no me funciona mi programa estoy usando el simulador de MPLAB trabajando con la pic 16F886 el objetivo principal es llenar el banco 0 con el número 75, el banco 1 con una numeración ascendente, el banco 2 con una numeración descendente, y el banco 3 con el número AA, hasta ahora eh logrado cumplir lo que tengo que hacer el el banco 0,1 Y 3 pero en el banco 2 me copia la informacion del banco 0 y no realiza lo que tiene que hacer les dejo mi programa y una captura espero que me puedan ayudar
...
Código:
list p=16f886 ; list directive to define processor
#include <p16f886.inc> ; processor specific variable definitions
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
RESET_VECTOR CODE 0x0000 ; processor reset vector NOP
NOP
goto start ; go to beginning of program
MAIN_PROG CODE 0x05
start
BANCOZERO
CLRF 0X7F
MOVLW 0x20
MOVWF FSR
PROG
MOVLW 0X75
MOVWF INDF
MOVFW 0X7F
SUBLW 0X75
BTFSC STATUS,Z
GOTO BANCO1
INCF FSR
GOTO PROG
BANCO1 ;ETIQUETA PARA
CLRF STATUS
BSF STATUS,RP0
MOVLW 0xA0
MOVWF FSR
PROG1
INCF 0XC0
MOVFW 0XC0
MOVWF INDF
MOVFW 0XEF
SUBLW 0X03
BTFSC STATUS,Z
GOTO BANCO2
INCF FSR
GOTO PROG1
BANCO2 ;ETIQUETA PARA
CLRF STATUS
BSF STATUS,IRP
BSF STATUS,RP1
BSF STATUS,RP0
MOVLW 0X120
MOVWF FSR
PROG2
DECF 0X122
MOVFW 0X122
MOVWF INDF
MOVFW 0X16F
SUBLW 0X77
BTFSC STATUS,Z
GOTO BANCO3
INCF FSR
GOTO PROG2
BANCO3 ;ETIQUETA PARA
CLRF STATUS
BSF STATUS,IRP
BSF STATUS,RP1
BSF STATUS,RP0
MOVLW 0X1A0
MOVWF FSR
PROG3
MOVLW 0XAA
MOVWF INDF
MOVFW 0X1EF
SUBLW 0X34
BTFSC STATUS,Z
GOTO BANCO3
INCF FSR
GOTO PROG3
PARA
GOTO PARA
END
Adjuntos
Última edición: