Kruftin
Jun 3 2012, 06:56
Подскажите схему подключения самой простой клавиатуры 4 на 3 к микроконтроллеру атмега32(где поставить диоды и какие) ну и код желательно на си, чтобы было предусмотрено нажатие нескольких клавиш одновременно. Ну и посоветуйте какую-нибудь модель клавиатуры.
Понимаю что прошу много, но надеюсь на знающих людей).
Смотрите Application Note AVR240, AVR242, AVR243 на сайте
Atmel
Kruftin
Jun 3 2012, 16:47
Ну т.е. покупать в магазине любую матричную клавиатуру и использовать руководства атмела конечно тоже вариант. Но а готовый код для матричной клавиатуры может кто встречал?
kovigor
Jun 3 2012, 20:00
Цитата(Kruftin @ Jun 3 2012, 19:47)

Ну т.е. покупать в магазине любую матричную клавиатуру и использовать руководства атмела конечно тоже вариант. Но а готовый код для матричной клавиатуры может кто встречал?
Посмотрите книжку Урусова, Сташина и Мологонцевой про MCS51. Там и схемка есть, и принцип работы описан, и программа приводится. Ничего сложного в этой задаче нет. Вот книжка:
http://lord-n.narod.ru/walla.html
_Артём_
Jun 3 2012, 21:17
Цитата(Kruftin @ Jun 3 2012, 19:47)

Но а готовый код для матричной клавиатуры может кто встречал?
Если код не встречается, то наверное он очевиден.
PS. Обычно Atmel снабжает свои апноты кодом.
Посмотрите пристальней.
В дополнение к подсказке от _Артём_
Цитата(Kruftin @ Jun 4 2012, 01:47)

… Но а готовый код для матричной клавиатуры может кто встречал?
По
ссылке, которую я привёл в посте#2, слева от описания апнотов, есть значки "листочек" (PDF file) и "диск" (ZIP file).
Если Вам нужен пример рабочего кода, то нужно нажать на значок "диск", ваш К.О.
Kruftin
Jun 4 2012, 13:47
Я просто апноты не по ссылке смотрел, сейчас все нашел. А есть клавиатуры, которые не занимают столько портов, а порта 3 - 4 и размером 3 на 4?
Цитата(Kruftin @ Jun 4 2012, 17:47)

А есть клавиатуры, которые не занимают столько портов, а порта 3 - 4 и размером 3 на 4?
Есть и такое подключение... Но, только не для случая нажатия одновременно нескольких кнопок.
Sergey_Aleksandrovi4
Jun 6 2012, 06:36
Рекомендую прочитать статью А. Самарина в журнале "Схемотехника" №11 за 2001 год "Интерфейсы с клавиатурой". Про клавиатуры (матричные и не только) очень хорошо написано. Ещё нечто подобное описано в этом радиолюбительском блоге
http://chipenable.ru/index.php/how-connect...-to-micros.html.
s_black
Jun 11 2012, 11:31
Цитата(Kruftin @ Jun 3 2012, 09:56)

Подскажите схему подключения самой простой клавиатуры 4 на 3 к микроконтроллеру атмега32(где поставить диоды и какие) ну и код желательно на си, чтобы было предусмотрено нажатие нескольких клавиш одновременно. Ну и посоветуйте какую-нибудь модель клавиатуры.
Понимаю что прошу много, но надеюсь на знающих людей).
Посмотрите
здесь рабочий пример с пояснениями и исходниками
Kruftin
Jun 15 2012, 15:14
Вот такая вот схемка думаю покатит для кнопок(изображение 1)?
А еще можно ли использовать светодиоды подав на них питание, а на микроконтроллере соответствующий вывод порта ставить на выход в логическую "1" для выключения светодиода и в логич. "0" для включения? Резистор само собой рассчитал для тока в 20 мА.
Цитата(Kruftin @ Jun 15 2012, 19:14)

Вот такая вот схемка думаю покатит для кнопок(изображение 1)?
Нет. У Вас все пять кнопок включены параллельно между двумя "проводами"...
Подтяжку можно и внутреннюю включить. Если желаете обязательно - внешнюю, то резистор R8 - "размножить" и каждую линию к питанию через "свой" подтягивающий резистор.
Kruftin
Jun 15 2012, 15:27
Можешь нарисовать как надо? Как то этот рисунок отредактировать можно? А ну все понял как с кнопками надо.
Цитата(Kruftin @ Jun 15 2012, 19:14)

А еще можно ли ... Резистор само собой рассчитал для тока в 20 мА.
Можно. Но, обратите внимание: в DS в примечаниях к таблице "DC Characteristics" есть ограничение на суммарный ток...
Kruftin
Jun 15 2012, 15:55
Я просто уже платку сделал и все распаял, ладно ножки у резисторов длинные, так что нетрудно будет модернизировать кнопки. А вот со светодиодами я посмотрю суммарный ток, спасибо за помощь.
Kruftin
Jun 15 2012, 17:02
Ну там написано, что на портах A0-A7 суммарный ток не более 100 мА. Ну вот если 4 порта у меня выставлены в 0(по ним потечет по 20мА), а два в единичку, то получается, что по портам потечет 80мА или 80мА + мА с двух других выводов? Если у меня 35 ног из 40 у атмеги 32 задействованы, правда на проц течет ток из внешней среды только от 4 светодиодов, остальной ток на выводах формируется процессором. А если на процессоре выводы выставлены на вход, то тогда если на них идет напряжение, то их следует учитывать? Т.е. надо складывать ток и на портах которые выставлены на вход и на тех что выставлены на выход?
_Артём_
Jun 15 2012, 17:39
Цитата(Kruftin @ Jun 15 2012, 20:02)

Ну вот если 4 порта у меня выставлены в 0(по ним потечет по 20мА)
Ток необязательно будет 20 ма, он будет не более 20 ма: например к порту подключен светодиод с резистором 1000 ом к +5 В, то ток будет 5 ма.
Цитата(Kruftin @ Jun 15 2012, 20:02)

А если на процессоре выводы выставлены на вход, то тогда если на них идет напряжение, то их следует учитывать? Т.е. надо складывать ток и на портах которые выставлены на вход и на тех что выставлены на выход?
Зависит от того как настроен вход: например вход настроен как Z, то ток определяется сопротивлением входа (десятки килоом).
Kruftin
Jun 15 2012, 18:06
Это как настроить вход как Z? Ну с током примерно понял, припаяю резисторы побольше.
_Артём_
Jun 15 2012, 18:15
Цитата(Kruftin @ Jun 15 2012, 21:06)

Это как настроить вход как Z? Ну с током примерно понял, припаяю резисторы побольше.
Можно и не настраивать, так как это исходное состояние после сброса.
Но если нужно перенастроить в процессе работы, то вход в Z-State
если PORTn.pin=0 и DDRn.pin=0.
Код
// настройка PA1 в Z-state
DDRA&=~1;
PORTA&=~1;
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.