'************************************************* ***************
'* Name : Dr.RAGHUS COMPOSITE TIMER.BAS
'* Author : [DR.RAGHU]
'* Notice : Copyright (APRIL) 2007
'* : All Rights Reserved
'* Date : 4/24/2007
'* Version : 1.0
'* :
'************************************************* ***************

'FOR SW1
'LED (5W LED WILL TURN ON WITH SW1 AND BEEPER WILL BEEP ON FOR 1/3RD SEC
'LED WILL TURN OFF AFTER 20 SECS THEN BUZZER WILL BEEP for 1 SEC
'FOR SW2
'SAME AS ABOVE BUT CYCLE IS FOR 40 SECS AND BUZZER BEEPS 1 SEC AT THE END OF THE CYCLE
'INT XTL, NO OTHER CONFIGERATIONS

Set_Defaults PROTON_4 ' PROTON dev board using a 4MHz crystal
Device 16F628a

Dim BUF1 as Byte ' Working buffer 1 for button command
Dim BUF2 as Byte ' Working buffer 2 for button command
Symbol SW1 = PORTB.4
Symbol SW2 = PORTB.5

Symbol BUZ = PORTa.2 'BUZ = BUZZZER
Symbol LED = PORTA.1 'LED = 5W LUXEON LED

Delayms 500 ' Wait for PICmicro to stabilise
ALL_DIGITAL = True ' Set ports to digital mode
Clear ' Clear buffers
Low PORTa ' ALL LEDs off
TRISB = $F0 ' Set PORTB 0-3 outputs, 4-7 inputs
PORTB_PULLUPS = ON ' Enable PORTB pull-ups


Chk1: Delayms 25

Button SW1,0,40,5,BUF1,0,Chk2' Check Button 1 (Skip to 2 if Not Pressed)

TOGGLE BUZ 'TOGGLE BUZ
TOGGLE LED 'TOGGLE LED

DELAYMS 500 'DELAY 1/2 SEC
LOW BUZ 'TURNOFF BUZ & LED WILL STILL BE ON
DELAYMS 20000 'DELAY 20 SECS FOR LED

TOGGLE BUZ 'TURN ON BUZ AGAIN LED WILL STILL BE ON

DELAYMS 1000 'DELAY FOR 1SEC
LOW LED 'TURNOFF LED
LOW BUZ 'TURNOFF BUZ

Delayms 25


Chk2:

Button SW2,0,40,5,BUF2,0,CHK1 ' Check Button 2 (Skip to 1 if Not Pressed)

TOGGLE BUZ 'TOGGLE BUZ
TOGGLE LED 'TOGGLW LED

DELAYMS 500 'DELAY 1/2 SEC
LOW BUZ 'TURNOFF BUZ & LED WILL STILL BE ON
DELAYMS 40000 'DELAY 20 SECS FOR LED

TOGGLE BUZ 'TURN ON BUZ AGAIN & LED WILL STILL BE ON

DELAYMS 1000 'DELAY FOR 1 SEC
LOW BUZ 'TURNOFF BUZ
LOW LED 'TURNOFF LED2

Delayms 25

Goto Chk1 ' Do it forever