Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подключение клавиатуры к атмега32
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Kruftin
Подскажите схему подключения самой простой клавиатуры 4 на 3 к микроконтроллеру атмега32(где поставить диоды и какие) ну и код желательно на си, чтобы было предусмотрено нажатие нескольких клавиш одновременно. Ну и посоветуйте какую-нибудь модель клавиатуры.
Понимаю что прошу много, но надеюсь на знающих людей).
ae_
Смотрите Application Note AVR240, AVR242, AVR243 на сайте Atmel
Kruftin
Ну т.е. покупать в магазине любую матричную клавиатуру и использовать руководства атмела конечно тоже вариант. Но а готовый код для матричной клавиатуры может кто встречал?
kovigor
Цитата(Kruftin @ Jun 3 2012, 19:47) *
Ну т.е. покупать в магазине любую матричную клавиатуру и использовать руководства атмела конечно тоже вариант. Но а готовый код для матричной клавиатуры может кто встречал?



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

Если код не встречается, то наверное он очевиден.

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

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

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

Посмотрите здесь рабочий пример с пояснениями и исходниками
Kruftin
Вот такая вот схемка думаю покатит для кнопок(изображение 1)?

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


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

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

Ток необязательно будет 20 ма, он будет не более 20 ма: например к порту подключен светодиод с резистором 1000 ом к +5 В, то ток будет 5 ма.

Цитата(Kruftin @ Jun 15 2012, 20:02) *
А если на процессоре выводы выставлены на вход, то тогда если на них идет напряжение, то их следует учитывать? Т.е. надо складывать ток и на портах которые выставлены на вход и на тех что выставлены на выход?

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

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

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.