Файл: 1Описание Внешних устройств 2 2Контроллер клавиатуры. 3.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 27
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Регистры таймеров Т доступны по записи и чтению (адреса 1, 3, 5 соответственно для T1, T2, ТЗ).
Программа в любой момент может считать текущее содержимое таймера или записать в него новое значение.
На входы предделителей поступают общие для всех каналов метки времени CLK с периодом 1 мс.
Предделители в каждом канале программируются независимо, поэтому таймеры могут работать с различной частотой.
Рис. 5. Блок таймеров.
Регистры управления CTR доступны для записи и чтения (адреса 2, 4, 6) и содержат следующие поля:
-
Т (разряд 5) — флаг включения таймера; -
EI (разряд 4)— флаг разрешения формирования запроса на прерывание при переполнении таймера; -
I/D (разряд 3) — направление счета (инкремент/декремент), при I/D = 0 таймер работает на сложение, при I/D = 1 — на вычитание; -
k(разряды [1:2]) — коэффициент деления предделителя (от 1 до 99).
Флаги переполнения таймеров собраны в один регистр — доступный только на чтение регистр состояния SR, имеющий адрес 0. Разряды регистра (5, 4 и 3 для Tl, T2, ТЗ соответственно) устанавливаются в 1 при переполнении соответствующего таймера.
Для таймера, работающего на сложение, переполнение наступает при переходе его состояния из 99 999 в 0, для вычитающего таймера — переход из 0 в 99 999.
В окне обозревателя (рис. 6) предусмотрена кнопка Сброс, нажатие которой сбрасывает в 0 все регистры блока таймеров, кроме CTR, которые устанавливаются в состояние 001000. Таким образом,:
-
все три таймера обнуляются, переключаются в режим инкремента, -
прекращается счет, -
запрещаются прерывания, -
сбрасываются флаги переполнения -
и устанавливаются коэффициенты деления предделителей равными 01.
Рис. 6. Окно обозревателя блока таймеров
Программное управление режимами блока таймеров осуществляется путем записи в регистры CTR соответствующих кодов.
Запись по адресу SR числа с 1 в третьем разряде интерпретируется блоком таймеров как команда, причем младшие разряды этого числа определяют код команды:
-
ххх100 — общий сброс (эквивалентна нажатию кнопки Сброс в окне обозревателя); -
xxx101 — сброс флага переполнения таймера FT1; -
ххх102 — сброс флага переполнения таймера FT2; -
ххх103 — сброс флага переполнения таймера FT3.
-
Тоногенератор.
Модель этого простого внешнего устройства не имеет собственного обозревателя, содержит всего два регистра, доступных только для записи:
-
FR (адрес 0) — регистр частоты звучания (Гц); -
LR (адрес 1) — регистр длительности звучания (мс).
По умолчанию базовый адрес тоногенератора — 30.
Сначала следует записать в FR требуемую частоту тона в герцах, затем в LR — длительность звучания в миллисекундах.
Запись числа по адресу регистра LR одновременно является командой на начало звучания.