Alumno: Molotla Cabaas Diana Grupo: 7 S 1 Nmero de Control: 13106114 Tema: Tarea 3 #include <p16F84a.inc> :
CUENTA1 EQU B'1111111' ;PRIMER CONTADOR PARA LOS
RETRASOS CUENTA2 EQU B'1111111' ;SEGUNDO CONTADOR PARA LOS RETRASOS
CLRF PORTB ;INICIALIZA EL PUERTO B
CLRW ;LIMPIAMOS EL REGISTRO W BSF STATUS,RP0 ;SELECIONAMOS EL BANCO 1 POR QUE ES DONDE SE ENCUENTRAN LOS TRIS MOVLW B'00000000' ;MOVEMOS 0000 0000 AL REGISTRO W MOVWF TRISB ;CONFIGURAMOS EL PUERTO B COMO SALIDAS BCF STATUS,RP0 ;SELECCIONAMOS EL BANCO 0 GOTO PRINCIPAL
PRINCIPAL
MOVLW B'00000001' MOVWF PORTB
DELAY1
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY1 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY1 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W RLF PORTB ;ROTA A LA IZQUIERDA EL CONTENIDO DEL PUERTO B
DELAY2
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY2 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY2 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W
RLF PORTB ;ROTA A LA IZQUIERDA EL CONTENIDO DEL
PUERTO B
DELAY3
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY3 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY3 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W RLF PORTB ;ROTA A LA IZQUIERDA EL CONTENIDO DEL PUERTO B
DELAY4
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY4 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY4 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W
RLF PORTB ;ROTA A LA IZQUIERDA EL CONTENIDO DEL
PUERTO B
DELAY5
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY5 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY5 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W RLF PORTB ;ROTA A LA IZQUIERDA EL CONTENIDO DEL PUERTO B
DELAY6
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY6 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY6 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W
RLF PORTB ;ROTA A LA IZQUIERDA EL CONTENIDO DEL
PUERTO B
DELAY7
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY7 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY7 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W RRF PORTB ;ROTA A LA DERECHA EL CONTENIDO DEL PUERTO B
DELAY8
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY8 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY8 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W
RRF PORTB ;ROTA A LA DERECHA EL CONTENIDO DEL
PUERTO B
DELAY9
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY9 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY9 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W RRF PORTB ;ROTA A LA DERECHA EL CONTENIDO DEL PUERTO B
DELAY10
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY10 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY10 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W
RRF PORTB ;ROTA A LA DERECHA EL CONTENIDO DEL
PUERTO B
DELAY11
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY11 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY11 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W RRF PORTB ;ROTA A LA DERECHA EL CONTENIDO DEL PUERTO B
DELAY12
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY12 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY12 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W
RRF PORTB ;ROTA A LA DERECHA EL CONTENIDO DEL
PUERTO B
DELAY13
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY13 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY13 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W RRF PORTB ;ROTA A LA DERECHA EL CONTENIDO DEL PUERTO B
DELAY14
DECFSZ CUENTA1,1 ;RESTA 1 A 255
GOTO DELAY14 ;SI CUENTA ES ZERO SALTA LA SIGUIENTE INSTRUCCION DECFSZ CUENTA2,1 ;RESTA 1 A 255 GOTO DELAY14 ;REGRESA AL INICIO DEL DELAY MOVLW B'11111111' ;MOVEMOS 255 AL REGISTRO W MOVWF CUENTA1 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA1 MOVWF CUENTA2 ;MOVEMOS EL CONTENIDO DE W A REGISTRO CUENTA 2 CLRW ;LIMPIAMOS EL REGISTRO W CLRF PORTB ;LIMPIAMOS EL PUERTO B