отип схеми підключення клавіатури
Схеми підключення 16-кнопкової клавіатури і їх опис наведено в джерелах [4] і [5] (див. рис. 6).
В
Рис. 6. Схема підключення 16-кнопкової клавіатура до мікроконтролера ATmega16. br/>
Працює ця схема досить просто. Лінії скануючого порту (стовпці) за замовчуванням перебувають стані, коли на всіх лініях, крім однієї, встановлений високий логічний рівень. Лінія, на якій встановлено низький логічний рівень є опитуваної в поточний момент, тобто визначає опитуваний стовпець. Якщо яка небудь кнопка цього шпальти буде натиснута, на відповідній лінії зчитувального порту (рядку) так само буде низький логічний рівень. Іншими словами, замкнута кнопка підтягне рядок до потенціалу шпальти, тобто до землі. Знаючи номер опитуваного стовпця і номера ліній зчитувального порту, на яких встановлено логічний нуль, можна однозначно визначити які кнопки цього шпальти натиснуті. p align="justify"> Далі вибирається наступний опитуваний стовпець шляхом установки логічного нуля на відповідній лінії скануючого порту і зі зчитувального порту знову знімаються дані. Цикл сканування буде продовжуватися до тих пір, поки не будуть перебрані таким чином всі скануючі лінії. p> Для випадку, коли одночасно натиснуто кілька кнопок одного стовпця буде встановлено в логічний нуль кілька бітів зчитувального порту одночасно. Але що станеться, якщо будуть замкнуті контакти кількох кнопок з різних стовпців одного рядка? Адже в різних стовпцях можуть виявитися різні напруги. Одночасне натискання двох кнопок в одному рядку призвело б до короткого замикання і випаленим портам, якби не діоди. Саме вони захищають порти від короткого замикання. p> Мікроконтролери серії AVR мають у своєму складі підтягує резистори, тому зовнішніх підтягаючих резисторів в схемі не потрібно.
Наведену схему можна (і треба) модифікувати, організувавши обробку натискання кнопки з переривання. Для цього необхідно підключити лінії рядків до логічного елементу 4ІЛІ, вихід якого подати на вхід INT0 мікроконтролера. Таке рішення пропонується у джерелі [6] і, доповнюючи схему рис. 6 чотирма діодами, бази яких приєднані до висновку INT0 мікроконтролера, а емітери до відповідних лініях рядків клавіатури, утворюючи таким чином логічний елемент АБО, отримаємо оригінальну схему, розроблену в рамках даного курсового проекту, зображену на рис. 7 . p> На вхід INT0 підключений підтягуючий резистор 10 кому до плюса харчування. Ми призначимо чотири молодших біта порту PB на вихід, встановивши на них низький рівень. Старші 4 біта працюватимуть як входи, на них зробимо високий рівень. Тепер, якщо натиснути клавішу, виникне з'єднання між будь-яким стовпцем і рядком. Тепер на лінії рядка з'явиться низький рівень. Також низький рівень з'явиться і на рядку з діодами, спрацює елемент АБО, і на вході INT0 також з'явиться низький рівень і викличе переривання. p> У підпрогр...