;**************************************************************
;CONTADORES
;**************************************************************
CONTA_1 EQU 0X20
CONTA_2 EQU 0X21
;************************************************************
;PLANTILLA
;************************************************************
LIST P=16F84A ; Tipo de PIC
INCLUDE "P16F84A.INC" ; Definiciones de los registros internos
ORG 0X00 ; Directiva que indica donde está el
GOTO CONFIPUERTOS ; Salta hasta INICIO
ORG 05h ; Salva vector de interrupción
GOTO INICIO
;*************************************************************
;CONFIGURACION DE LOS PUERTOS
;*************************************************************
CONFIPUERTOS:
BSF STATUS,RP0 ;SELECCIONAMOS EL BANCO 1
BCF TRISA,0 ;BIT 0 COMO SALIDA PUERTOA
BCF TRISA,1 ;BIT 1 COMO SALIDA PUERTOA
BCF TRISA,2 ;BIT 2 COMO SALIDA PUERTOA
BSF TRISB,0 ;BIT 0 COMO ENTRADA PUERTOB
BSF TRISB,4 ;BIT 4 COMO ENTRADA PUERTOB
BSF TRISB,5 ;BIT 5 COMO ENTRADA PUERTOB
BSF TRISB,6 ;BIT 6 COMO ENTRADA PUERTOB
BSF TRISB,7 ;BIT 7 COMO ENTRADA PUERTOB
BCF STATUS,RP0 ;SELECCIONAMOS EL BANCO 0
CLRF PORTA
;*********************************************************************
;CONFIGURACION DEL INTCON
;*********************************************************************
MOVLW 0X9C ;ACTIVACION DE INTERRUPCIONES
MOVWF INTCON
BCF INTCON,T0IF ;BANDERA INT_EXT PUESTA A CERO
BCF INTCON,RBIF ;BANDERA CAMBIO DE ESTADO PUERTO B A CERO
;**************************************************
;ENCENDIDO DEL LED ON
;****************************************************
INICIO:
ENCENDIDO:
BTFSS PORTB,0 ;SI HAY UN 1 EN EL PURTOB,0 ENCENDIDO DEL LED ON
GOTO ENCENDIDO
BSF PORTA,0 ;ENCENDIDO DEL LED ON
SENSORES:
SENSOR1:
BTFSS INTCON,RBIF ;SI ESTA ACTIVADO EL FLAG DE CAMBIO DE ESTADO EN EL PUERTOB,4-7
;SE ACTIVAN LA BOCINA Y LAMPARA
GOTO SENSOR1
BSF PORTA,1 ;ACTIVACION BOCINA
BSF PORTA,2 ;ACTIVACION LAMPARA
RETFIE
CALL DOSMINUTOS
;*****************************************************************************
;CONGIGURACION DEL OPTION
;****************************************************************************
DOSMINUTOS:
ESPERA:
BSF STATUS, RP0 ;banco 1
MOVLW B'10000111'
MOVWF OPTION_REG ;pull-up's desactivadas, prescalador para TMR0 en 1:256
BCF STATUS, RP0 ;banco 0
BCF INTCON,RBIE
MOVLW d'255'
MOVWF CONTA_1 ;aux1 en d'255'
MOVLW d'7'
MOVWF CONTA_2 ;aux2 en d'7'
CLRF TMR0 ;TMR0 en d'0'
BSF INTCON, GIE ;habilitar interrupciones globales
BSF INTCON, T0IE ;habilitar interrupciones por TMR0
RETURN
;*************************************************
;**** En la subrutina de interrupción por TMR0: ****
BCF INTCON, T0IF
DECFSZ CONTA_1,1
RETFIE
MOVLW d'255'
MOVWF CONTA_1 ;CONTA_1 en d'255'
DECFSZ CONTA_2,1
RETFIE
MOVLW d'7'
MOVWF CONTA_2 ;CONTA_2 en d'7'
BSF INTCON,RBIE
BTFSS INTCON,RBIF
GOTO APAGADO
GOTO ESPERA
APAGADO:
BCF PORTA,1
BCF PORTA,2
GOTO INICIO
END
Este es mi porgrama realizadoo y con la simulacion en porteus me funciona.. pero no consigo que a los 2 minutos se apague la bocina y la lampara... pero todo lo demas si me funcionaa perfectamente.... es soloo eso....