Bueno que tal amigos tengo un problema con este programa en PIC16f877A.El programa tiene 4 secuencias y trata de encender 11 Leds (8 del puerto C y 3 del puerto D). En el encendido de los 8 leds del puerto C no hay ningun problema pero los 3 del puerto D no encienden para nada. Quisiera ver si le pueden dar una mirada a la programacion y decirme en que estoy fallando porfavor.gracias
PD: adjunto la programacion que esta en asm (mplab) y la imagen del proteus.
PD: adjunto la programacion que esta en asm (mplab) y la imagen del proteus.
HTML:
INCLUDE <P16F877A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
CBLOCK 0X20
SEC
REG1
REG2
REG3
ENDC
ORG 0x00
GOTO MAIN
ORG 0x04
GOTO PAUSA
MAIN
BCF STATUS,RP1
BSF STATUS,RP0
CLRF PORTC
CLRF TRISD
MOVLW B'11111111'
MOVFW PORTB
BCF STATUS,RP0
BSF INTCON,7 ;CONFIGURO INTERRUPCION
BSF INTCON,3
BCF INTCON,0
INICIO
CLRF PORTC
CLRF PORTD
CLRF SEC
PREG1
BTFSS SEC,0
GOTO PREG2
GOTO S1
PREG2
BTFSS SEC,1
GOTO PREG3
GOTO S2
PREG3
BTFSS SEC,2
GOTO PREG4
GOTO S3
PREG4
BTFSS SEC,3
GOTO PREG1
GOTO S4
S1
MOVLW B'10101010'
MOVWF PORTC
MOVLW B'00000111'
MOVWF PORTD
CALL RETARDO
CLRF PORTC
CLRF PORTD
CALL RETARDO
GOTO PREG1
S2
MOVLW B'11001100'
MOVWF PORTC
MOVLW B'00000111'
MOVWF PORTD
CALL RETARDO
var1
BTFSS SEC,1
GOTO PREG1
COMF PORTC,F
COMF PORTD,F
CALL RETARDO
GOTO var1
S3
MOVLW B'00110000'
MOVWF PORTC
MOVLW B'00000111'
MOVWF PORTD
CALL RETARDO
var2
BTFSS SEC,2
GOTO PREG1
RLF PORTC
RLF PORTD
CALL RETARDO
GOTO var2
S4 MOVLW B'00010000'
MOVWF PORTC
MOVLW B'00000111'
MOVWF PORTD
CALL RETARDO
var3
BTFSS SEC,3
GOTO PREG1
RRF PORTC
RRF PORTD
CALL RETARDO
GOTO var3
PAUSA
BCF INTCON,7
CHECA_BOTON
BTFSC PORTB,4
GOTO $+4
CALL ANTIRREBOTES
MOVLW B'00000001'
MOVWF SEC
BTFSC PORTB,5
GOTO $+4
CALL ANTIRREBOTES
MOVLW B'00000010'
MOVWF SEC
BTFSC PORTB,6
GOTO $+4
CALL ANTIRREBOTES
MOVLW B'00000100'
MOVWF SEC
BTFSC PORTB,7
GOTO $+4
CALL ANTIRREBOTES
MOVLW B'00001000'
MOVWF SEC
GOTO SALIDA
ANTIRREBOTES
BTFSS PORTB,4
GOTO ANTIRREBOTES
BTFSS PORTB,5
GOTO ANTIRREBOTES
BTFSS PORTB,6
GOTO ANTIRREBOTES
BTFSS PORTB,7
GOTO ANTIRREBOTES
RETURN
SALIDA
BSF INTCON,7
BCF INTCON,0
retfie
RETARDO
MOVLW 10
MOVWF REG1
TRES
MOVLW 20
MOVWF REG2
DOS
MOVLW 30
MOVWF REG3
UNO DECFSZ REG3,1
GOTO UNO
DECFSZ REG2,1
GOTO DOS
DECFSZ REG1,1
GOTO TRES
RETURN
END
Última edición: