byte inPins[] = {0, 1, 2};
byte outPins[] = {3, 4, 5};

enum { ON = HIGH, OFF = LOW };
#define N_BUT sizeof(inPins)
byte ToggleState [N_BUT];

int chkButtons() {
  for (unsigned n = 0; n < sizeof(inPins); n++) {
    byte BUT = digitalRead(inPins[n]);
      if (ToggleState[n] != BUT) {
        ToggleState[n] = BUT;
        if (OFF == BUT){
          return n;
        }    
      }
  while (digitalRead(inPins[n]) == LOW) {delay(10);}
  }
  return -1;
}

void setIO(){
  for (unsigned c = 0; c< sizeof(inPins); c++) {
    pinMode (inPins[c], INPUT_PULLUP);
    ToggleState[c] = digitalRead(inPins[c]);
  }
  for (unsigned d = 0; d< sizeof(outPins); d++) {
    pinMode (outPins[d], OUTPUT);
  } 
}

void setFunctions(){
  int n = chkButtons();
    if (0 <= n) {
      digitalWrite(outPins[n], !digitalRead(outPins[n]));
    } 
    delay(10);
}
void setOFF(){
  digitalWrite(outPins[0], HIGH);
  digitalWrite(outPins[1], HIGH);
  digitalWrite(outPins[2], HIGH);
}
void setup() {
  setIO();
  setOFF();
}
void loop() {
  setFunctions();
}
ATTINY8520PU