ВУЗ:
Составители:
50
IN A,P2 ;ВВОД БАЙТА ВОЗВРАТА
MOV R5,#4 ;ЗАГРУЗКА СЧЁТЧИКА ОПРОСОВ
ROTATE: RRC A ;СДВИГ БАЙТА ВОЗВРАТА
JNC DBNC ;ВЫХОД ИЗ ПРОЦЕДУРЫ
;ПРИ ОБНАРУЖЕНИИ
;ПЕРВОЙ НАЖАТОЙ КЛАВИШИ
INC R4 ;ИНКРИМЕНТ SCANCODE
DJNZ R5,ROTATE ;ДЕКРЕМЕНТ СЧЁТЧИКА ОПРОСОВ
;И ЦИКЛ ЕСЛИ НЕ НУЛЬ
DJNZ R7,LOOP ;ДЕКРЕМЕНТ СЧЁТЧИКА СКАНИРОВАНИЯ И
;ЦИКЛ ЕСЛИ НЕ НУЛЬ
JMP SCAN
После выхода из процедуры SCAN управление передаётся частной
процедуре
устранения дребезга контактов DBNC.
Устранение дребезга контактов. Устранение дребезга контактов при вводе символа
с клавиатуры осуществляется, как правило, программной реализацией временной задержки
5- 20 мс (в зависимости от механических характеристик клавиатуры ) :
DBNC: CALL DELAY ;ЗАДЕРЖКА
Если возможно возникновение дребезга контактов и при освобождении клавиши, то
процедуру DBNC необходимо вставить и после процедуры ожидания
освобождения
клавиши.
Ожидание освобождения клавиши. Для того чтобы при повторном обращении МК к
клавиатуре не был введён код той же самой клавиши, вводится процедура ожидания
освобождения. После выполнения сканирования активной осталась та линия сканирования, в
которой обнаружена нажатая клавиша. Поэтому процедура ожидания освобождения нажатой
клавиши сводится к считыванию и анализу байта
возврата:
;ВЕРСИЯ ДЛЯ МК-48
WAITOP: IN A,P2 ;ВВОД БАЙТА ВОЗВРАТА
CPL A ;ИНВЕРСИЯ БАЙТА ВОЗВРАТА
JNZ WAITOP ;ЕСЛИ КЛАВИША НАЖАТА, ТО ЖДАТЬ
;ВЕРСИЯ ДЛЯ МК-51
Страницы
- « первая
- ‹ предыдущая
- …
- 48
- 49
- 50
- 51
- 52
- …
- следующая ›
- последняя »