Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПрогрМПС_ЛР-3_МатрКлав.docx
Скачиваний:
1
Добавлен:
12.08.2019
Размер:
191.16 Кб
Скачать

Міністерство освіти і науки, молоді та спорту україни Національний університет "Львівська політехніка"

Науково-навчальний інститут екології, природоохоронної діяльності та туризму імені В’ячеслава Чорновола

Кафедра загадьної екології та екоінформаційних систем

Інструкція до лабораторної роботи №3

з дисципліни «Програмування мікропроцесорних систем»

Тема. "Опитування матричної клавіатури"

Для студентів базового напряму 6.0915 „Комп’ютерна інженерія”

Затверджено

на засіданні кафедри ЗЕС

Протокол № 1 від 22.08.2011 р.

Львів – 2011

  1. Мета роботи.

1.1. Набути практичних навичок роботи з матричною клавіатурою.

1.2. Навчитися опитувати матричну клавіатуру та формувати scan-код натиснутої клавіші.

  1. Короткі теоретичнi відомості.

  1. У багатьох застосуваннях МК працюють автономно за заздалегідь заданою програмою без втручання людини. Разом з цим існують інтерактивні МК-системи, що включають в контур управління людину-оператора. Простий приклад інтерактивної керуючої системи - обслуговуваний МК, що вимагає введення оперативної інформації та її відображення.

  2. У різних по складності і призначенню керуючих системах використовуються різноманітні клавіатури для введення інформації:

  • прості, що складаються з клавіш, СКИДАННЯ, ПУСК, ЗУПИНКА і т.п.;

  • цифрові, призначені для введення даних і управління режимом роботи МП-системи і такі, що складаються з шістнадцятиричної клавіатури і керуючих клавіш ЗАВАНТАЖЕННЯ, АДРЕСА/ДАНІ, ПОКРОКОВИЙ РЕЖИМ, ІНДИКАЦІЯ і т.д.;

  • алфавітно-цифрові;

  • спеціалізовані клавіатури, в яких кожній клавіші відповідає деяка процедура процесу управління, наприклад ПІДВИЩИТИ ТИСК, ЗНИЗИТИ ТЕМПЕРАТУРУ і т.п.;

  • багатофункціональні клавіатури на основі сенсорних перемикачів, що доповнюються змінюваними шильдікамі (передніми панелями) з відповідними написами. Ці клавіатури за наявності відповідних програмних засобів дозволяють на одних і тих же апаратурних засобах реалізувати набір різноманітних технологічних мов і забезпечити їх оперативну заміну.

  1. По способах апаратурної реалізації розрізняють два типи клавіатур: кодучу і некодуючу. У клавіатурах першого типу схемним шляхом на виході формується код, відповідний натиснутій клавіші. Із-за значного об'єму неуніфікованої апаратури схем перетворення кодів і високої вартості, які різко зростають із зростанням числа знаків, такі клавіатури в МК-системах застосовуються рідко. Значно ширшого поширення набули дешеві некодуючі (матричні) клавіатури, які є простою матрицею двійкових перемикачів (необхідній розмірності), включених на перетині рядків і колонок матриці, Ідентифікація (кодування) натиснутої клавіші в таких клавіатурах виконується програмою.

  2. Для обслуговування клавіатур в МК- системах використовуються дві процедури: опитування стану клавіатури і введення коду натиснутої клавіші.

Перша процедура проводить одноразове звернення до матриці клавіш для визначення, чи натиснута хоч би одна з клавіш. Друга здійснює циклічний опит клавіатури до тих пір, поки не буде натиснута (а часто і звільнена) клавіша.

Рис. 1. Типова схема підключення матричної клавіатури до МК.

Процедуру введення інформації з некодуючої матричної клавіатури зручно розглянути на прикладі клавіатури 4х4, що включає 16 цифрових клавіш (0 - F). Структура матриці клавіатури аналогічна структурі матриці двійкових датчиків, спосіб підключення клавіатури до МК представлений на рис. 1. Лінії порту Р3 використовуються для сканування, а лінії порту Р0 - для опитування матриці клавіш. Кожна клавіша в такій матриці має свій номер, відповідний її місцеположенню. На цифрові клавіші можна нанести позначення, відповідні їх кодам (наприклад, від 0 по F). Діоди забезпечують захист від замикання між собою скануючих ліній у разі одночасного натиснення більш ніж однієї клавіші.

  1. Процедура введення коду натиснутої клавіші може складатися з послідовності окремих процедур: сканування матриці клавіш, усунення брязкоту контактів, очікування звільнення клавіші і ідентифікації коду натиснутої клавіші. Для деякого типу клавіатур може бути відсутньою процедура усунення брязкоту контактів (клавіатури на основі герконов) . Процедуру сканування іноді буває зручно сумістити з процедурою ідентифікації.

Сканування служить для виявлення натиснутої клавіші і подальшій її ідентифікації. Процедура зводиться до почергового обнулення кожній з ліній сканування і опитування ліній повернення. У порт Р3 видається байт сканування, що містить 0 тільки в одному біті. Якщо на перетині лінії сканування і лінії повернення знаходиться натиснута клавіша, то у відповідному біті байта повернення, що приймається в порт Р0, знаходитиметься 0.

Послідовністю байтів сканування є код нуля, що "біжить"; формування чергового байта сканування здійснюється шляхом зсуву його попереднього значення. Напрям зсуву визначає послідовність опитування клавіш. Якщо при повному циклі сканування не було виявлено натиснутої клавіші, то процедура сканування повторюється спочатку.

Усунення брязкоту контактів при введенні символу з клавіатури здійснюється, як правило, програмною реалізацією часової затримки 5-20 мс (залежно від механічних характеристик клавіатури). Якщо можливе виникнення брязкоту контактів і при звільненні клавіші, то процедуру усунення брязкоту контактів необхідно вставити і після процедури очікування звільнення клавіші.

Для того, щоб при повторному зверненні МК до клавіатури не був введений код тієї ж самої клавіші, вводиться процедура очікування звільнення. Після виконання сканування активною залишилася та лінія сканування, в якій виявлена натиснута клавіша. Тому процедура очікування звільнення натиснутої клавіші зводиться до прочитування і аналізу байта повернення.

Кожній клавіші клавіатури має бути поставлений у відповідність код (її вага), що є функцією номерів лінії сканування і лінії повернення, на перетині яких натиснута клавіша. Процедура ідентифікації натиснутої клавіші може бути суміщена з процедурою сканування.

Для складних клавіатур сканкод не завжди вдається сумістити з дійсною вагою клавіші. В цьому випадку необхідне додаткове перекодування, яке виконується табличним способом з використанням сканкоду як покажчика.

  1. У лабораторному стенді 12-кнопочна клавіатура підключена комірок ЗПД так:

  • 9006h - зчитування 1-го стовпця матриці клавіш (лівого).

  • 9005h - зчитування 2-го стовпця матриці клавіш (середнього).

  • 9003h - зчитування 3-го стовпця матриці клавіш (правого).

Тому опитування клавіатури в стенді відрізняється від описаного вище і зводиться до зчитування вмісту комірок 9006h, 9005h і 9006h з наступним аналізом їх вмісту (сканування клавіатури виконано апаратно).