66
Клавиатура терминала состоит из клавиш: «0», «1», «2», «3», «4», «5»,
«6», «7», «8», «9», «Esc», и «Enter». Каждая кнопка терминала (кроме «Enter»)
привязана через диоды к отдельному выводу микроконтроллера «PD6» для
общей проверки активности клавиатуры. Таким образом, условием для начала
обработки данных, вводимых при помощи терминала, является нажатие какой-
либо из кнопок.
После перехода к процедуре ввода (рисунок 17.а), производится
проверка, какая именно из кнопок была нажата (рисунок 17.б). Для этого,
поочередно проверяется каждый вывод микроконтроллера,
сконфигурированного как вход кнопки клавиатуры, на наличие логического
нуля, который образуется в момент нажатия кнопки. Переменная «kb_buffer»
принимает значение, соответствующее номеру нажатой кнопки, а значение
переменной key_count, отвечающей за разрядность вводимого числа,
инкрементируется. В случае нажатия кнопки «Esc», все параметры клавиатуры,
а именно: переменные «kb_buffer», «kb_total», и «key_count», принимают
нулевое значение, а программа завершает процедуру ввода.
Если регистрация нажатой кнопки выполнена успешно, происходит
возврат из процедуры чтения кнопок клавиатуры в процедуру ввода. Далее,
проверяется разряд вводимого числа, посредством проверки переменной
«key_count». В соответствии с разрядом, данное число умножается на
множитель и присваивается переменной «kb_total», путем составной операции
присвоения и сложения. Таким образом, каждое последующее вводимое число
соответствует своему разряду. Вводимое число, которое хранится в переменной
«kb_total», отображается на экране LCD-дисплея во второй строке.
Отправка введенных при помощи клавиатуры данных на рабочую
станцию, выполняется посредством процедуры обработки кнопки «Enter».
Опрос данной кнопки осуществляется отдельно от остальных ключей в главном
цикле программы. При появлении логического уровня «0» на входе «PD4»,
происходит копирование значения переменной «kb_total» в «Event», с
последующим обнулением первой и копирования значения второй в регистр
UDR для отправки данных на рабочую станцию (рисунок 17.в).