Hola, necesito hacer siguiente programa: Encender los leds desde el de RB0 hasta el de RB3 con una demora de 200ms entre ellos.
y lo que hice yo fue lo siguiente:
LIST p=16F877A
INCLUDE <P16F877A.INC> ;Librería del PIC16F877A
ORG 0x00 ; Inicio de programa
CONT1 EQU 0x20
CONT2 EQU 0x21
INICIO
BSF STATUS,RP0 ; Accede a banco 1
CLRF TRISB ; Configura todas las patitas de PORTB como salidas
BCF STATUS,RP0 ; Regresa a banco 0
ENCIENDELED
CLRF PORTB
MOVLW B'00000001'
MOVWF PORTB
CALL Retardo
MOVLW B'00000011'
MOVWF PORTB
CALL Retardo
MOVLW B'00000111'
MOVWF PORTB
CALL Retardo
MOVLW B'00001111'
MOVWF PORTB
Retardo ; Rutina de retardo
MOVLW d'256'
MOVWF CONT1
REP1
MOVLW d'256'
MOVWF CONT2
REP2
DECFSZ CONT2,1 ; Decrementa el valor de CONT2 en 1 (3 instrucciones * 256 = 768)
GOTO REP2
DECFSZ CONT1,1 ; Decrementa el valor de CONT1 en 1 (768*256=0,2seg aprox)
GOTO REP1
Return
END ; Fin de programa
El problema es que cuando los LEDS se llega al bits RB4, se vuelven a apagarse. (mi objetivo es mantener los LEDS prendidos permanentemente.)
Alguien me podria ayudar? Muchas gracias.