@ __config _INTRC_OSC_NOCLKOUT & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _WDT_OFF & _PWRTE_OFF
;*******************************************************************************
Define OSC 4
CMCON = 7 
Precarga	Var Word			
										
Symbol LED1 = PORTB.0 
Symbol LED2 = PORTB.1
Symbol SW1 = PORTA.2 
Symbol SW2 = PORTA.3 
T1s CON 1*6    ; Conteos para 1seg con interrupciones cada 16.384ms
                ; T2s : 1*(1000/16.384) = 61
T1 VAR WORD     ; Variable que lleva el conteo

T2s CON 2*6    ; Conteos para 2seg con interrupciones cada 16.384ms
                ; T2s : 2*(1000/16.384) = 122
T2 VAR WORD     ; Variable que lleva el conteo
TRISA=%11111111                    
TRISB=%00000000
                  
PORTB=0
LED1 = 0
LED2 = 0					
	
	T1CON = %00111101			
	Precarga = 40536			
	TMR1H = Precarga.HighByte  'Precargar el byte alto	
	TMR1L = Precarga.LowByte   'Precargar el byte bajo	
	PIE1.0 = 1				   'Habilita la interrupcin por desborde 		
	INTCON = %11000000         'Habilita interrupciones globales y perifricas
	
	
	On Interrupt GoTo Interrupcion

Inicio:
	     
IF SW1=0  THEN T1=T1s  ;Con T1>0 se dispara el conteo
                           ;La cuenta es descendente y en 0 activa el led
   
IF SW2=0  THEN T2=T2s  ;Con T2>0 se dispara el conteo
                           ;La cuenta es descendente y en 0 desactiva el led
GoTo	Inicio:
	
Interrupcion:
	Disable
	
	If PIR1.0 = 1 Then			; Ocurri un desborde del Timer 1
	            'Call _set_timer1(0xfc17)  'Recarga registros TMR1 para desborde 1mSeg. y borra PIR1.TMR1IF
                T1CON.0 = 0  'Para el contador del TMR1
                TMR1H = Precarga.HighByte 'Recarga el contador byte alto
                TMR1L = Precarga.LowByte  'Recarga el contador byte bajo
                T1CON.0 = 1  'Activa el contador del TMR1
                PIR1.0 = 0	 'Flash dosborde a cero
     T1 = T1-1
        if T1=0 then HIgh LED1
    endif
   
    if T2>0 then               
        T2 = T2-1
        if T2=0 then LOW LED1
    endif
   
    INTCON.2 = 0    ' Reset timer interrupt flag            
	
	Resume
	Enable


	End