You are on page 1of 9

Asignatura: Sistemas Programables

Docente: Muiz Elizalde Jos David


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

END