Цитата(prottoss @ Jul 18 2008, 18:31)

Что не понятного? Есть три линии, назовем их A, B, C. Есть три кнопки, которые подключены между линиями, назовем их линейными - Key1, Key2, Key3. И есть три кнопки, которые подключены между оджной линией и землей - Key4, Key5, Key6. Токоограничительные резисторы я опустил для простоты.
Идея проста как апельсин...
3 линии и 6 кнопок...
Задача делится на 3 части:
1 - все 3 линии на прием с pull up и опрашиваем их. Ксли замкнута хотябы одна кнопка, сажающая одну из линий на массу, то мы это видим и считываем код клавиши.
2 - второй шаг - ждем, когда отпущена (или не нажималась) кнопка (шаг 1) и программируем одну из 3 линий на передачу и выставляем там "0". опррашиваем 2 оставшиеся линии на предмет замкнутости 2 кнопок, соединяющих эти 2 линии с той, что мы перевели в "0".
3 - последний шаг, переводим на передачу и втиорую из трех линий и "0". и смотрим на состояние третей линии, которое определяется положением 6-й кнопки, которая соединяет вторую и третью линии.
Это по схеме, приведенной автором.
вот такой нехитрый алгоритм.
При этом важно, что к каждому следующему шагу переходим только в том случае, если на предыдущем шаге не обнаружено нажатий.