Hi AvionicsMaster

Here is a code using IOC and Sleep.

Code:
'****************************************************************
'*  Name    : Temporizador 3m p/ Lavar Dentes.BAS               *
'*  Author  : Hugo Oliveira                                     *
'*  Notice  : Copyright (c) 2012 ProSystems                     *
'*          : All Rights Reserved                               *
'*  Date    : 01-03-2012                                        *
'*  Version : 1.0                                               *
'*  Notes   : Proteus + Circuito com SOT-23 e CR2032            *
'*          : 10F222 - Wake from sleep através de IOC no GP3    *
'****************************************************************
@ __config _IOFSCS_4MHZ & _WDT_OFF & _MCLRE_OFF & _CP_OFF & _MCPU_ON

 DEFINE OSC 4

 '===================SRF AND PINOUT CONFIGURATION - 1-In / 0-Out=================
              '76543210
     TRISIO = %00001000
       GPIO = %00000000
 OPTION_REG = %00000000 'OPTION_REG.7 - Wake on change bit 0=Enable
     ADCON0 = %00000000 'Analog pins disable

'==================================ALIAS========================================
 VAZIO1 VAR GPIO.0
 VAZIO2 VAR GPIO.1
 LED    VAR GPIO.2
 MCLR   vAR GPIO.3
 
'=================================VARIABLES=====================================
 I VAR BYTE
 
'================================MAIN LOOP======================================
@ movlw 0x01A  ;OSCCAL Value
@ movwf OSCCAL
Main:


 WHILE MCLR = 0
 WEND
 
 FOR I = 0 TO 119 '~120 Segundos a Piscar de 1 em 1 Segundo
    HIGH LED
    PAUSE 500 
    LOW LED
    PAUSE 500
 NEXT

 FOR I = 0 TO 59  '~30 Segundos a Piscar de 0,5 em 0,5 Segundo
    HIGH LED
    PAUSE 250 
    LOW LED
    PAUSE 250
 NEXT

 HIGH LED
 PAUSE 30000     '~30 Segundos sempre ligado
 LOW LED 
 'Sequencia de finalização
 HIGH LED: PAUSE 100: LOW LED: PAUSE 100
 HIGH LED: PAUSE 100: LOW LED: PAUSE 100
 HIGH LED: PAUSE 100: LOW LED: PAUSE 100
 
 I = GPIO     'Must read GPIO before entering sleep. Read the Datasheet
@ SLEEP
@ NOP
GOTO Main
END