|
|
  |
Клавиатура 8x8, Есть какие нить примерчики |
|
|
|
Mar 16 2005, 08:30
|

Участник

Группа: Новичок
Сообщений: 26
Регистрация: 11-10-04
Пользователь №: 841

|
Собственно subj:
--------------------
Сделать можно ВСЕ, но это нужно делать.
|
|
|
|
|
Mar 16 2005, 09:41
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 4-11-04
Из: Московская область
Пользователь №: 1 040

|
Цитата(BlauTood @ Mar 16 2005, 11:30) На AVR ? Возьмем два порта по 8. Порт входов и порт выходов. Внешние подтяжки поставим. Кнопки поставим тоже. <_< Будем сканировать порт входов, перепрограммируя поочередно биты порта выходов в состояние "OUT 0". для этого предварительно в регистр данных порта выходов нужно записать 0x00. Таким образом, на битах порта выходов программно смастерим "опын коллектор". Такова идея. Способ подавления дребезга и вообще реализация дело вкуса.
--------------------
- ЗАМЕНЯТЬ ДЕТАЛИ НА ХОДУ ВОСПРЕЩАЕТСЯ !!! -
|
|
|
|
|
Mar 16 2005, 10:23
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 8-02-05
Из: Ukraine
Пользователь №: 2 501

|
Мне попадалась клавиатура которая при нажатии на кнопку замыкала выводы не только между собой но и на землю. Подключались подтягивающие резисторы. Т.о., просто необходимо прочитать значения из 2-х 8-битных портов и если ни одна клавиша не нажата - при чтении будет (0xFFFF). Иначе - код соответствующий данной клавише. Если же замыкаются только 2 вывода (таких клавиатур большинство) то я солидарен с предыдущими советами.
|
|
|
|
|
Mar 16 2005, 11:04
|

Знающий
   
Группа: Модераторы
Сообщений: 804
Регистрация: 1-12-04
Пользователь №: 1 283

|
Цитата(-Tумблер- @ Mar 16 2005, 13:41) На AVR ? Возьмем два порта по 8. Порт входов и порт выходов. Внешние подтяжки поставим. Кнопки поставим тоже. <_< Будем сканировать порт входов, перепрограммируя поочередно биты порта выходов в состояние "OUT 0". для этого предварительно в регистр данных порта выходов нужно записать 0x00. Таким образом, на битах порта выходов программно смастерим "опын коллектор". Алгоритм определения двух нажатых кнопок тот же, что привел -Tумблер-. Только после сканирования состояния порта входов, проводим ту же операцию, но меняем местами порт входов и порт выходов.
--------------------
Иван Сусанин - первый полупроводник
|
|
|
|
|
Mar 18 2005, 12:40
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 4-11-04
Из: Московская область
Пользователь №: 1 040

|
Цитата(Alexandr @ Mar 16 2005, 14:04) проводим ту же операцию, но меняем местами порт входов и порт выходов. Не понял - всегда я был уверен, что приведенный мной пример прзволяет диагностировать ЛЮБОЕ количество нажатых одновременно кнопок в любых комбинациях (за полный цикл опроса). Который (цикл опроса) гораздо быстрее чем "нажатие-удержание-отжатие". Полный цикл опроса, очевидно, это 8 комбинаций кодов (плавающий 0) на регистре "выходов". Цитата(arttab) Может чего не понял... Речь идет о том, что диоды не нужны. Попросту бессмысленны. <_<
--------------------
- ЗАМЕНЯТЬ ДЕТАЛИ НА ХОДУ ВОСПРЕЩАЕТСЯ !!! -
|
|
|
|
|
Mar 18 2005, 16:38
|
Участник

Группа: Свой
Сообщений: 32
Регистрация: 26-11-04
Из: Одесса, Украина
Пользователь №: 1 240

|
Цитата(-Tумблер- @ Mar 18 2005, 15:40) Речь идет о том, что диоды не нужны. Попросту бессмысленны. <_< Диоды ставить ОБЯЗАТЕЛЬНО, иначе рискуешь получить КЗ выходов, а это чревато выходом из строя проца...
|
|
|
|
|
Mar 19 2005, 13:51
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 4-11-04
Из: Московская область
Пользователь №: 1 040

|
Цитата(Alex_St @ Mar 18 2005, 19:38) Диоды ставить ОБЯЗАТЕЛЬНО, иначе рискуешь получить КЗ выходов.. Цитата(-Tумблер-Mar 16 2005 @ 12:41 ) Таким образом, на битах порта "выходов" программно смастерим "опын коллектор". ".. Ничего то ты не понял, Иван..." Монтажное "ИЛИ" для "опын коллектора" это нормальный режим работы.
--------------------
- ЗАМЕНЯТЬ ДЕТАЛИ НА ХОДУ ВОСПРЕЩАЕТСЯ !!! -
|
|
|
|
|
Nov 21 2005, 07:21
|
Местный
  
Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957

|
Цитата ".. Ничего то ты не понял, Иван..." Монтажное "ИЛИ" для "опын коллектора" это нормальный режим работы. Попробуйте без диодов нажать несколько кнопок сразу и получите нули даже там, где их быть не должно. Диоды нужны всегда, если требуется одновременное удержание нескольких кнопок. Это так, вдогонку. А вопрос такой, какой комбинацией или скан-кодом включается комп с клавиатуры? В некоторых статьях упоминается CTRL + ESC, но у меня не срабатывает.
--------------------
Обычно последним смеется тот, кто хуже соображает!
|
|
|
|
|
Nov 21 2005, 08:22
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Если еще нужно могу предложить свой вариант 4x4, вот только я его недавно на С перевел и в железе не проверял. Но на AlgBuilder работало. На всякий случай в архиве и то и другое... Имеется возможность реакции как на нажатие "ReleaseKey" так и на отпускание "PressKey" Клавиатура не поддерживает одновременного нажатие двух и более кнопок, код при этом не изменяется. При нажатии конпок последовательно, первая из них выполняет роль регистра (Shift), что позволяет расширить диапазон клавиатуры. также возможно Shift "PressDuble" или отжатия с Shift "ReleaseDuble" Подпрограмма может вызываться в рабочем цикле или в прерывании.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|