sbit Ledt at RD2_bit;
sbit OK at RD0_bit;
sbit UP at RD1_bit;
sbit Ledz at RD3_bit;

#define port PORTD
#define debounce 10
#define activestate 0
#define UP 1

unsigned short Num;
unsigned int Sec;
unsigned int perc;
unsigned int time;
unsigned short i, DD0, DD1,DD2,DD3;
unsigned short Set1, Set2;
unsigned short szam1,szam2;
//7segment mask
unsigned short mask(unsigned short num) {
 switch (num) {
case 0 : return 0x3f;
 case 1 : return 0x06;
 case 2 : return 0x5b;
 case 3 : return 0x4f;
 case 4 : return 0x66;
 case 5 : return 0x6d;
 case 6 : return 0x7d;
 case 7 : return 0x07;
 case 8 : return 0x7f;
 case 9 : return 0x6f;
 }
}

void interrupt() {

   if (INTCON.TMR0IF==1){
   LEDt = ~LEDt;
   LATD.F6=0;
   if(time>=0){
      LATD.F6=1;
   if(Sec>0){Sec--;} else{Sec=59;perc--;}
    }else {  INTCON=0;T0CON.TMR0ON=0;Latd.F7=1;Latd.F6=1;}
   INTCON.TMR0IF = 0;
   TMR0H= 11;
   TMR0L=220;
   }
   }
void main() {
 OSCTUNE=0b11001111;
 OSCCON=0b01101110;
 CMCON = 0b00000111;     //kompatátor tiltva
 CCP1CON=0;
 ADCON0.ADON = 0;
 ADCON1=0b00001111;
     //analóg csatornák kikapcsolva
 TRISC = 0x00;     //minden port kimenet
 TRISA=0x00000000;
 TRISD=0x03;
 TRISB=0x39;
 TRISE=0x00;
 PORTC=0x00;
 PORTA=0x0f;
 defuse=2;
 bom=2;
 perc=30;
 Sec=59;
 Num = 0;
 LATD.F6=0;
 LATD.F7=0;

 T0CON=0b10000011;
 INTCON = 0xA8;
 INTCON2.RBIP=0;
 INTCON2.RBPU=1;
 TMR0H=11;
 TMR0L=220;

RA0_bit = 0;
RA1_bit = 0;
RA2_bit = 0;
RA3_bit = 0;
 while(time>0)                        //main
 {
 DD0 = Sec%10;
  DD0 = mask(DD0);
  DD1 = (Sec/10)%10;
  DD1 = mask(DD1);
  DD2 = perc%10;
  DD2 = mask(DD2);
  DD3 = (perc/10)%10;
  DD3 = mask(DD3);
  for (i = 0; i<=1; i++) {
      PORTC = DD0;
      RA0_bit = 1;
      RA1_bit = 0;
      RA2_bit = 0;       // 0 digit kiválasztása
      RA3_bit = 0;
      delay_ms(5);

      PORTC = DD1;
      RA0_bit = 0;
      RA1_bit = 1;
      RA2_bit = 0;           // 1 digit kiválasztása
      RA3_bit = 0;
      delay_ms(5);
      
      PORTC = DD2;
      RA0_bit = 0;       //   2
      RA1_bit = 0;
      RA2_bit = 1;
      RA3_bit = 0;
      delay_ms(5);

      PORTC = DD3;
      RA0_bit = 0;
      RA1_bit = 0;
      RA2_bit = 0;           //  3
      RA3_bit = 1;
      delay_ms(5);
      }  //endfor
      }  //endwhile
      INTCON=0;
      T0CON.TMR0ON=0;
      RA0_bit = 0;
       RA1_bit = 0;
       RA2_bit = 0;
       RA3_bit = 0;
       PORTC=0x00;
       Latd.F7=1;Delay_ms(50);Latd.F6=1;
       Ledz=1;
       Delay_ms(1000);
       asm sleep;
}