Разработка контроллера матричной клавиатуры на микроконтроллере К1816ВЕ48
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: менеджмент, диплом разработка
| Добавил(а) на сайт: Соболевский.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата
Принцип работы клавиатуры следующий:
На одну из линий порта выдается логический «0», а на остальные линии
«1». Затем происходит считывание с линий столбцов. Если фиксируется «0», его позиция соответствует номеру столбца нажатой клавиши и вместе с номером
текущей строки он используется для определения кода нажатой клавиши. Если
на всех входах «1», процедура сканирования продолжается для следующей
строки.
Для обслуживания клавиатур в МК- системах используются две процедуры: опрос состояния клавиатуры и ввод кода нажатой клавиши.
Первая процедура производит однократное обращение к матрице клавиш для определения, Нажата ли хотя бы одна из клавиш. Вторая осуществляет циклический опрос клавиатуры до тех пор, пока не будет нажата (а часто и освобождена) клавиша. Будучи встроена в основную программу, вторая процедура блокирует процесс управления объектом на время ожидания нажатия клавиши, а потому обращение к ней осуществляется только при обнаружении нажатой клавиши процедурой опроса состояния клавиатуры.
Линии порта 1 используются для сканирования, а линии порта 2 - для опроса матрицы клавиш. Каждая клавиша в такой матрице имеет свой номер, соответствующий ее местоположению. На цифровые клавиши нанесены обозначения, соответствующие их кодам (от 0 по B).
Для программного ввода информации с клавиатур характерен один
недостаток, а именно - срабатывание по отпусканию клавиши, а не по нажатию.
Однако при кратковременных нажатиях клавиш этот эффект не имеет особого
значения.
Частная процедура сканирования служит для обнаружения нажатой клавиши и последующей ее идентификации. Процедура сводится к поочередному обнулению каждой из линий сканирования и опросу линий возврата. В порт 1 выдается байт сканирования (БС), содержащий 0 только в одном бите. Если на пересечении линии сканирования и линии возврата находится нажатая клавиша, то в соответствующем бите байта возврата (БВ), принимаемого в порт 2, будет находиться 0.
Последовательность байтов сканирования представляет собой код "бегущий нуль"; формирование очередного байта сканирования осуществляется путем сдвига его предыдущего значения. Направление сдвига определяет последовательность опроса клавиш. Если при полном цикле сканирования не было обнаружено нажатой клавиши, то процедура сканирования повторяется сначала.
Оператор "Есть нажатая клавиша?" реализуется тем, что клавиши, подключенные к каждой линии сканирования, анализируются последовательно.
Если после анализа каждой клавиши осуществлять прибавление единицы к
счетчику SCANCODE, то процедуру сканирования можно совместить с процедурой
идентификации нажатой клавиши (рис. 4).
[pic]
4. Разработка текста исходной программы
R4 - счетчик кода сканирования
ORG 300H; переход на 300 страницу
РПП
DB 7EH,30H, 6DH,79H; коды семисегментного
DB 33H,5BH,5FH,70H; индикатора
DB 7FH,7BH,76H,1EH;
ORG 0; переход в начало программы
START: MOV R4,#0; сброс SCANCODE
MOV R7,#3; загрузка счетчика сканирования
MOV R6,#11111110B; загрузка исходного байта сканирования
LOOP: MOV A,R6
OUTL P1,A; вывод текущего байта сканирования
RL A; сдвиг байта сканирования
MOV R6,A; сохранение текущего байта сканирования
IN A,P2; ввод байта возврата
Рекомендуем скачать другие рефераты по теме: курсовая работа бизнес, конспект урока 10 класс.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата