Надо используя 2 порта МК пустить их через мультиплексор. Один порт МК должен работать как вход а второй как выход (с высоким уровнем).
Принцип такой: Пускаем на первую ногу мультиплексора (который как выход работает) высокоуровневый сигнал. Затем считываем состояние всех входов второго мультиплексора (который работает как вход) поочерёдно. Затем пускаем на вторую ногу мультиплексора (который как выход работает) высокоуровневый сигнал. И снова считываем состояние всех входов второго мультиплексора (который работает как вход) поочерёдно (и так далее, а затем процесс повторяется.)
Код
for (mult=0;mult<=5;mult++){
PORTB &= 0b11100011;
PORTB |= mult << 2;
_delay_ms(1);
for(multt=0;multt<=5;multt++){
PORTB &= 0b11100011;
PORTB |= multt << 2;
_delay_ms(1);
// здесь сам процесс обработки сигнала, он не суть важен
};
}
PORTB &= 0b11100011;
PORTB |= mult << 2;
_delay_ms(1);
for(multt=0;multt<=5;multt++){
PORTB &= 0b11100011;
PORTB |= multt << 2;
_delay_ms(1);
// здесь сам процесс обработки сигнала, он не суть важен
};
}
Вот то что я набросал, но только не могу сделать так, чтоб менялись ноги МК и мультиплексор тогда, когда переходим ко второму "FOR".