#include <htc.h>
#include <pic16f62xa.h>
__CONFIG(INTIO & WDTDIS & PWRTDIS & MCLREN & BORDIS & LVPDIS & UNPROTECT);
#ifndef _XTAL_FREQ
#define _XTAL_FREQ 4000000     //required to calibrate __delay_ms()
#endif
#define bitset(var, bitno) ((var) |= 1UL << (bitno));
#define bitclr(var, bitno) ((var) &= ~(1UL << (bitno)));
int i;

void delay5(void)
{                              	//five minute delay
for(i = 0; i <= 3045; i++)     	//adjust for 5 minute delay, i = 3000±60 
   __delay_ms(100);
}
void main(void)
{
 TRISB = 0b11111000;           	//port directions: 1=input, 0=output
 PORTB = 0b00000000;
 while (1){
 bitset(PORTB,0);               //valve1 ON
 delay5();
 bitclr(PORTB,0);               //valve1 OFF 
 bitset(PORTB,1);               //valve2 ON
 delay5();
 bitclr(PORTB,1);               //valve2 OFF 
 bitset(PORTB,2);               //valve3 ON
 delay5();
 bitclr(PORTB,2);               //valve3 OFF 
 }
}
