Привет geektimes. Мне из Китая пришла одна приблуда, схему которой нашёл в сети, и когда рассматривал, то обнаружил для себя очень интересную часть, вот она:
Так как почти всё порты микроконтроллера заняты, то Китайцы для экономии портов поступили очень хитро, уровень хитрости можете оценить сами.
Как это работает?
Для первого порта включаем нагрузочный резистор (pull-up) и проверяем состояние на порту, если нажата кнопка "DOWN", то получим низкий логический уровень. Точно такая же картина и с кнопкой с кнопкой "SET", только pull-up делаем уже для второго порта.
Для чтения кнопки "OK" — переводим второй порт в pull-up, а первый — устанавливаем как выход, и делаем низкий логический уровень. В этом случае, при нажатии кнопки "OK", ток потечёт от второго порта черед диод к первому, тем самым, при считывании состояния второго порта, у нас получится низкий логический уровень. Аналогичная же ситуация и с определением нажатия кнопки "UP" — pull-up на первом порте, второй ставим на выход и устанавливаем низкий логический уровень. При нажатии на кнопку "UP" ток потечёт через диод к второму порту, и соответственно на первом порте будет низкий логический уровень.
Все мои публикации на geektimes.
Автор: HWman