как правильно подключить кнопки к порту

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Открыл глаза
Сообщения: 45
Зарегистрирован: Пн окт 01, 2007 00:12:57
Откуда: СПб

Сообщение Scorpline »

вобщем надо подключить 15 кнопок(для ввода цифр и доп.функций) к порту контроллера. ...порт стандартный 8 разрядов то есть я могу могу подключить так сказать до 255 кнопок...
...жмем кнопку один, в порт записываем 01h
жмем 2 в порт 02h и т.д.
жмем 3 ..но тогда надо объединять два вывода порта..... 0000011
...делать развязку из диодов..?дофига получится!
То есть как правильно сделать?
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Насколько я понимаю, 8-битный порт может обслужить только 16 (4х4) кнопок.

Делается так: пусть кнопки расположены квадратом 4х4. Разбиваем порт пополам, первые 4 бита обслуживают "строки", последние 4 бита - "столбцы". Соответственно линии, обслуживающие строки настраиваем на ввод, столбцы - на вывод. Подаём на первый столбец единицу, на остальных - нули, и сканируем строки, затем единицу на второй столбец, и т.д.
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Вот примерно, как подключать:

Изображение
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

Сообщение saschai »

я бы еще через супротивлюхи порядка 10к к питанию подтянул п7-п4 :))
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Ну, у многих контроллеров есть возможность использовать внутренний подтягивающий резистор, так что эта проблема отпадает...
Реклама
Открыл глаза
Сообщения: 45
Зарегистрирован: Пн окт 01, 2007 00:12:57
Откуда: СПб

Сообщение Scorpline »

В принципе это наверно правильно сканировать клавиатуру.....
Так скорее всего и делают.
я то думал просто в цикле опрашивать порт, а тут в принципе сколько можно задать комбинаций столько и кнопок поставить.
...а какие еще возможны варианты без применения дополнительных деталей...шифраторов и т.д.
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

я то думал просто в цикле опрашивать порт, а тут в принципе сколько можно задать комбинаций столько и кнопок поставить
Только с шифратором.
.а какие еще возможны варианты без применения дополнительных деталей...шифраторов и т.д.
один пин - одна кнопка. Итого 8 кнопок :) Больше никак.
Родился
Аватара пользователя
Сообщения: 19
Зарегистрирован: Пн окт 13, 2008 20:24:05
Откуда: LbtCity

Сообщение KVorb »

Можно подключить гораздо больше кнопок.
Наличие встроенного АЦП позволяет реализовать клавиатуру с большим количеством кнопок, используя всего один вход. При правильном выборе значений номиналов резисторов, замыкание каждой из кнопок сформирует уникальное напряжение, соответствующее именно этой кнопке. Измеряя напряжение Vout с помощью АЦП, можно определить какая именно кнопка нажата. Для однозначности определения нажатой клавиши лучше использовать точные резисторы. Если ни одна из кнопок не нажата - измеренное напряжение будет около 0В.
Изображение

Подробности в статье Большие возможности маленького контроллера
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Ой, что-то не нравится мне эта идея... не стал бы я так делать. Не надёжно как-то, на "хакерские" методы похоже. Лучше два порта взять - целую клавиатуру опрашивать можно.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки

Сообщение Секретный кот »

KVorb писал(а):Измеряя напряжение Vout с помощью АЦП, можно определить какая именно кнопка нажата.
А если нажато несколько кнопок сразу? Разрешающей способности АЦП может не хватить :))
Даже остановленные часы два раза в сутки показывают правильное время.
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Секретный кот писал(а):А если нажато несколько кнопок сразу? Разрешающей способности АЦП может не хватить :))
просто информация будет считана неправильно. будет "как бы нажата" другая кнопка.
Ставим плюсы: )
Открыл глаза
Сообщения: 45
Зарегистрирован: Пн окт 01, 2007 00:12:57
Откуда: СПб

Сообщение Scorpline »

Секретный кот писал(а):
KVorb писал(а):
А если нажато несколько кнопок сразу? Разрешающей способности АЦП может не хватить :))
...скорее всего не получится нажать именно одновременно несколько кнопок(во всяком случае не с первого раза) все таки какая то нажмется первее.... но если все таки сработает пара кнопок вместе. то такого кода не будет забито в программе для сравнения с заложенными....
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

как не получится? еще как получится) антидребезг сделает всю работу)
Не умеешь - не берись, но не взявшись не научишься...
Мявтор!
Аватара пользователя
Сообщения: 878
Зарегистрирован: Чт авг 07, 2008 09:12:38
Откуда: не скажу

Сообщение Настя »

KVorb писал(а):Можно подключить гораздо больше кнопок.
оценила, сильно
натуральная блондинка
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Хотя по ссылке, что привёл KVorb ниже, очень много оригинальных решений...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»