October 19 2017 17:24:31
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
регистр управления модулем сканирования клавиатуры
МОДУЛЬ ВНЕШНЕЙ МАГИСТРАЛИ

В процессе инициализации модуля сканирования клавиатуры МК HC908GP32/20 следует учитывать следующую особенность буферов линий ввода/вывода МК. В исходном состоянии (после сброса) линии находятся в состоянии ввода и встроенные "подтягивающие" резисторы не включены. При таком "висячем" режиме (подключенные клавиши обычно разомкнуты) линии находятся в состоянии логического 0, а не 1. Тогда при конфигурировании этих линий как входов запроса на прерывание внутренние буферы автоматически подключаются к встроенным "подтягивающим" резисторам. Однако длительность переходного процесса конечна и низкий начальный уровень входов может быть воспринят как сигнал запроса на прерывание. Чтобы избежать этого, проводите инициализацию модуля в следующем порядке:

* Замаскируйте прерывания модуля сканирования клавиатуры путем записи 1 в бит маски IMASKK регистра управления INTKBSCR.

* Сконфигурируйте выбранные линии модуля для приема запросов на прерывание посредством записи 1 в разряды KBDi регистра.

* Реализуйте небольшую программную задержку.

* Проведите программный сброс триггера TKBI посредством записи 1 в бит ASKK регистра INTKBSCR.

* Разрешите прерывания модуля сканирования клавиатуры установкой бита IMASKK в 0.

Следует иметь в виду, что прием ложных запросов на прерывание в динамическом режиме линий возможен только немедленно после инициализации. Тогда задержка необязательна. Если же линии установлены в статический режим, то время ложных запросов определяется паразитной емкостью печатной платы и длительность задержки следует подобрать экспериментально.

Можно также произвести инициализацию модуля другим способом:

* Сконфигурируйте выбранные линии модуля сканирования клавиатуры как линии порта вывода путем записи 1 в регистр направления передачи порта DDRx.

* Запишите! в соответствующие разряды регистра данных порта РТх.

* Сконфигурируйте выбранные линии как линии для приема запросов на прерывание.

Если порты МК не имеют функции pull-up, то "подтягивающие" резисторы придется разместить на плате изделия. В этом случае входы KBDi после сброса уже находятся в состоянии 1 и указанные проблемы не возникнут.

Модуль сканирования клавиатуры продолжает свое функционирование, когда МК находится в режиме ожидания (Wait mode) или в режиме останова (Stop mode). Если прерывание по какому-либо из входов модуля разрешено, то поступление низкого логического уровня на этот вход вызовет переход МК в рабочий режим (Run mode).

Внимание! Если МК находится в режиме отладочных прерываний (Break Mode), то установка бита ASKK в 1 приведет к сбросу триггера KBIT только в том случае, если бит BCFE регистра SBFCR установлен в 1. В противном случае установка бита ASKK не приведет к сбросу флага прерывания KEYF модуля сканирования клавиатуры.

Два регистра специальных функций используются для программного управления модулем сканирования клавиатуры:

INTKBSCR - регистр управления модулем сканирования клавиатуры. INTKBIERx- регистр масок прерывания от клавиатуры. Форматы регистров приведены в Табл. 3.133 и 3.134.

Табл. 3.133. Формат регистра INTKBSCR

INTKBSCR Регистр управления модулем сканирования клавиатуры

Keyboard Status and Control Register
7 6 5 4 3 2 1 0
0 0 0 0 KEYF ASKK IMASKK MODEK
Состояние при сбросе: $00
Имя бита Назначение бита
KEYF Флаг запроса прерывания (IRQ Flag Bit).Флаг запроса прерывания от модуля сканирования клавиатуры устанавливается в 1, если сигнал запроса на прерывание принят, но прерывание еще не обслужено.
1 - сигнал запроса на прерывание поступил.
0 - сигнал запроса на прерывание не поступал.
Этот бит доступен только для чтения
ASKK Бит подтверждения запроса на прерывание модуля сканирования клавиатуры (Keyboard Acknowledge Bit).
Установка этого бита в 1 под управлением программы вызывает очистку триггера запроса на прерывание ТК. Этот бит доступен только для записи. Операция чтения этого бита возвращает 0
IMASKK Маска прерывания модуля сканирования клавиатуры (Keyboard Interrupt Mask).
1 - прерывания от клавиатуры запрещены.
0 - прерывания от клавиатуры разрешены.
Этот бит доступен как для чтения, так и для записи. Обратите внимание: сброс МК вызывает установку бита IMASKK в 0, т.е. при включении МК в работу внешние прерывания разрешены
МООЕК Бит выбора режима обработки сигнала запроса на прерывание от клавиатуры (Keyboard Triggering Sensitivity Bit).
1 - входы KBI7...KBI0 работают в статическом режиме.
0 - входы KBI7...KBI0 работают в динамическом режиме.
Бит доступен как для чтения, так и для записи. При сбросе МК устанавливается динамический режим распознавания сигналов запроса на прерывание от клавиатуры
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,256,140 уникальных посетителей