вується для визначення коду натиснутою клавіші. Якщо на всіх входах В«1В», процедура сканування триває для наступного рядка.
Для обслуговування клавіатур в МК-системах використовуються дві процедури: опитування стану клавіатури і введення коду натиснутою клавіші.
Перша процедура виробляє одноразове звернення до матриці клавіш для визначення, натискали хоча б одна з клавіш. Друга здійснює циклічний опитування клавіатури до тих пір, поки не буде натиснута (а часто і звільнена) клавіша. Будучи вбудована в основну програму, друга процедура блокує процес управління об'єктом на час очікування натискання клавіші, а тому звернення до неї здійснюється тільки при виявленні натиснутоюклавіші процедурою опитування стану клавіатури.
Лінії порту 1 використовуються для сканування, а лінії порту 2 - для опитування матриці клавіш. Кожна клавіша в такій матриці має свій номер, відповідний її розташування. На цифрові клавіші нанесені позначення, відповідають їх кодами (від 0 з B).
Для програмного введення інформації з клавіатур характерний один недолік, а саме - спрацьовування по відпускання клавіші, а не за натиснення. Однак при короткочасних натисканнях клавіш цей ефект не має особливого значення.
Приватна процедура сканування служить для виявлення натиснутоюклавіші і подальшої її ідентифікації. Процедура зводиться до почерговому обнулення кожній з ліній сканування і опитуванню ліній повернення. У порт 1 видається байт сканування (БС), що містить 0 тільки в одному бите. Якщо на перетині лінії сканування та лінії повернення знаходиться натиснута клавіша, то у відповідному бите байти повернення (БВ), що приймається в порт 2, буде знаходитися 0. p> Послідовність байтів сканування являє собою код "біжить нуль"; формування чергового байта сканування здійснюється шляхом зсуву його попереднього значення. Напрямок зсуву визначає послідовність опитування клавіш. Якщо при повному циклі сканування не було виявлено натиснутою клавіші, то процедура сканування повторюється спочатку.
Оператор "Є натиснута клавіша?" реалізується тим, що клавіші, підключені до кожної лінії сканування, аналізуються послідовно. Якщо після аналізу кожної клавіші здійснювати додаток одиниці до лічильника SCANCODE, то процедуру сканування можна поєднати з процедурою ідентифікації натиснутоюклавіші (рис. 4).
В
В
4. Розробка тексту вихідної програми
R4 - лічильник коду сканування
В
ORG 300 H; перехід на 300 сторінку РПП
DB 7 EH, 30 H, 6 DH, 79 H; коди семисегментного
DB 33 H, 5 BH, 5 FH, 70 H; індикатора
DB 7 FH, 7 BH, 76 H, 1 EH;
ORG 0; перехід в початок програми
START: MOV R4, # ...