You are on page 1of 3

LIST P=16F628A

INCLUDE "P16F628A.INC"
CUENTA1 EQU 20H
CUENTA2 EQU 21H
CUENTA3 EQU 22H
CUENTA4 EQU 23H
CONT1 EQU 24H
CONT2 EQU 25H
CONT3 EQU 26H
W2 EQU 27H
;RESPALDO DEL ACUMULADOR CUANDO SE VA A LA RUTINA DE INTERRUPCION
ORG 0X00
GOTO INTRO
ORG 0X04
MOVWF W2
;RESPALDO EL ACUMULADOR QUE TRAIGO DEL PROGRAMA PRINCIPAL
MOVLW .1
MOVWF CUENTA4
MOVF W2,0
BSF PORTA,1
RETFIE
INTRO
MOVLW 0X07
MOVWF CMCON
MOVLW .144
MOVWF INTCON
BSF STATUS,RP0
BCF OPTION_REG,INTEDG
CLRF TRISA
MOVLW .1
MOVWF TRISB
;EL PIN RB0 ES ENTRADA PARA ASI HABILITAR LA INTERRUPCION.
BCF STATUS,RP0
CLRF PORTA
CLRF PORTB
CLRF CUENTA1
CLRF CUENTA2
CLRF CUENTA3
CLRF CUENTA4
CLRF CONT1
CLRF CONT2
CLRF CONT3
CLRF W2
GOTO INICIO
INICIO
MOVLW .18
MOVWF PORTB
BSF PORTA,0
MOVLW .20
CALL TIEMPO
BTFSC CUENTA4
CALL INTERRUPTION
MOVLW .8
MOVWF PORTB
MOVLW .40
CALL TIEMPO
BTFSC CUENTA4
CALL INTERRUPTION
MOVLW .4
MOVWF PORTB
MOVLW .12
CALL TIEMPO
BTFSC CUENTA4
CALL INTERRUPTION
MOVLW .34
MOVWF PORTB
MOVLW .20
CALL TIEMPO
BTFSC CUENTA4
CALL INTERRUPTION
MOVLW .66
MOVWF PORTB
BCF PORTA,0
MOVLW .40
CALL TIEMPO
BTFSC CUENTA4
CALL INTERRUPTION
MOVLW .130
MOVWF PORTB
MOVLW .12
CALL TIEMPO
BTFSC CUENTA4
CALL INTERRUPTION
GOTO INICIO
TIEMPO
MOVWF CUENTA1
TIEMPO3 MOVLW .200
MOVWF CUENTA2
TIEMPO2 MOVLW .250
MOVWF CUENTA3
TIEMPO1 NOP
NOP
DECFSZ CUENTA3,1
GOTO TIEMPO1
DECFSZ CUENTA2,1
GOTO TIEMPO2
DECFSZ CUENTA1,1
GOTO TIEMPO3
RETURN
TIME
;CREE UNA SUBRUTINA IDENTICA PERO CON OTROS REGISTROS PARA LA INTER
MOVWF CONT1
;DEBIDO QUE SI ESTABAS CORRIENDO UN TIEMPO EN EL PROGRAMA PRINCIPAL
TIME3 MOVLW .200
;Y SI CORRES LA MISMA SUBRUTINA EN LA INTERRUPCION PIERDES EL TIEMPO
MOVWF CONT2
;QUE ESTABAS HACIENDO EN EL PROGRAMA PRINCIPAL CAUSANDO QUE CUANDO
TIME2 MOVLW .250
;TE DEVUELVAS SE VUELVA LOCO EL PROGRAMA PORQUE NO SABE DONDE QUEDO.
MOVWF CONT3
TIME1 NOP
NOP
DECFSZ CONT3,1
GOTO TIME1
DECFSZ CONT2,1
GOTO TIME2
DECFSZ CONT1,1
GOTO TIME3
RETURN
INTERRUPTION
BTFSS INTCON,INTF
;PASO LA INTERRUPCION QUE ME INTERESA?
RETURN
BCF INTCON,INTF
;BORRO BANDERA DE INTERRUPCION POR RB0 PARA QUE VUELVA A PASAR IMPORTANTISIMO
MOVLW .2
MOVWF PORTB
MOVLW .9
MOVWF PORTA
MOVLW .40
CALL TIME
MOVLW .5
MOVWF PORTA
MOVLW .20
CALL TIME
MOVLW .3
MOVWF PORTA
MOVLW .12
CALL TIME
CLRF PORTA
CLRF PORTB
CLRF CUENTA4
RETURN
END

You might also like