;el programa basicamente sirve para prender tres led"s en diferentes tiempos
;esta hecho en vase de contadores que son los que supuestamente deven
;de darles el retardo a cada uno
list p=16f84a
; #include<p16f84a.inc>
DDRB equ 06h ; banco 1
PORTB equ 06h ; banco 0
STATUS equ 0x03 ; banco 0 y 1
contador1 equ 0x0c
contador2 equ 0x0d
contador3 equ 0x0e
contador4 equ 0x0f;variables o contadores
contador5 equ 0x10
contador6 equ 0x11
bsf STATUS,5
; Configuración puertos
movlw 0
movwf DDRB ; TRISB = 0 -> puerto B de salida
; Accedemos al primer banco de RAM
bcf STATUS,5
; Pongo a cero el puerto B
clrf PORTB
;DELAY1S Retardo de 1 seg = ((255*3+3)*217+3)*6+8 = 999962us @ 4MHz
;se les agrega el valor a cada contador
;se le tiene que agregar un numero menor a 30 hex = 48
delay1s
movlw d"5";d"2"
movwf contador6
cinco movlw d"10";d"3"
movwf contador5
cuatro movlw d"20";d"5"
movwf contador4
tres movlw d"40";d"10"
movwf contador3
dos movlw d"50";d"15"
movwf contador2
uno movlw d"100";d"20"
movwf contador1
dly1
decfsz contador1,1 ;decrementa si es 0 salta una intruccion
goto dly1 ;vuelve a dly1
decfsz contador2,1 ;decrementa el contador 2
goto uno ;carga el 1, y regresa a dly1
decfsz contador3,1 ;decrementa el contador 3
goto dos ; carga el 1,2 y regresa a dly1
decfsz contador4,1 ;segundos ;decrementa el contador 4
goto tres ; carga el 1,2,3 y regresa a dly1
btfsc PORTB,1;si PORTB,1 esta prendido lo apaga o viseversa
goto apaga
goto prende
no
decfsz contador5,1;decrementa contador 5
goto cuatro ;recupera 4
btfsc PORTB,2 ;prende o apaga el RB2
goto apaga1
goto prende1
si
decfsz contador6,1;decrementa contador 6
goto cinco ;recupera 5
btfsc PORTB,2;prende o apaga el RB2
goto apaga2
goto prende2
prende
bsf PORTB,1 ;prende RB1 y regresa a NO
goto no
apaga
bcf PORTB,1;apaga RB1 y regresa a NO
goto no
prende1
bsf PORTB,2 ;prende RB2 y regresa a SI
goto si
apaga1
bcf PORTB,2;apaga RB2 y regresa a SI
goto si
prende2
bsf PORTB,3 ;prende RB3 y regresa a delay1s
goto delay1s
apaga2
bcf PORTB,3 ;apaga RB3 y regresa a delay1s
goto delay1s
end ;fin de el programa
bueno pues lo que pregunto pues es porque es que se quedan prendidos o apagados si los valores de los contadores son algo grandes ?¿
¡¡¡gracias¡¡¡
ES MEJOR VERTE IGNORANTE PREGUNTANDO....
QUE SERLO EL RESTO DE TU VIDA ¡¡¡¡