Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIchka4.DOC
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
940.03 Кб
Скачать

Форматы управляющих команд таймера.

Управляющий регистр имеет следующий формат (см. рис.1).

Поле RW определяет способ загрузки 2-байтных констант через 1-байтный порт. Если в этом поле задано значение 00, то это определяет команду CLC. Команда CLC выполняет фиксацию текущего содер­жимого счетчика СЕ в буферном регистре OL. Это позволяет узнать состояние счетчика, не влияя на работу таймера. Код канала, для которого выполня­ется команда, должен быть указан в поле SC. Поля М и BCD при этом не используются.

Если в поле SC задано значение 11, то это опреде­ляет команду RBC. Формат команды RBC чтения слова состояния канала (см. рис.2). С помощью этой команды можно выполнять операции чтения состоя­ния каналов либо запоминание регистров счетчиков каналов. Можно выполнять эти операции как для отдельного канала, так и для всех каналов одновре­менно.

После того, как в управляющий регистр отправле­на команда RBC, можно прочитать состояние канала (или каналов) из соответствующего порта, интерпре­тировав его следующим образом (см. рис. 3).

Использование каналов в ibm pc.

Канал 0 микросхемы используется в качестве сис­темного таймера, он работает в режиме 3. Выход OUT канала 0 подключен к линии запроса на прерывание IRQO и вырабатывает прерывание INT 8h 18.2 раза в секунду ( точное значение - 1193180/65536 раза в секунду, (CR)=0000).

Формат слова состояния канала (рис.3).

При инициализации BIOS устанавливает свой обра­ботчик для прерывания таймера. Он каждый раз увеличивает на 1 текущее значение 4-байтовой пере­менной, располагающейся в области данных BIOS по адресу 0040:006Сh-счетчик тиков таймера. Если этот счетчик переполняется (прошло более 24 часов), в ячейку 0040:0070h заносится 1.

7 6 5 4 3 2 1 0

рис. 1

7 6 5 4 3 2 1 0

рис.2.

Стандартный обработчик прерывания осуществля­ет также контроль за работой двигателей НГМД. Если после последнего обращения к НГМД прошло более 2 секунд, обработчик прерывания выключает двига­тель.

7 6 5 4 3 2 1 0

рис. 3

Еще одно действие, которое выполняет обработчик прерывания таймера, - вызов пользовательского пре­рывания 1Ch. После инициализации системы вектор 1Ch указывает на команду IRET.

Канал 1 работает в режиме 2, (CR) = 18 и исполь­зуется для управления регенерацией памяти. Сигнал на регенерацию появляется каждые 15 мсек (Трег =1/ (1193800/18)= 15*10 ). Выход OUT канала 1 подключен ко входу канала 0 ПДП, который по сигналу таймера производит регенерацию памяти. Увеличе­ние значения счетчика позволяет увеличить произ­водительность процессора, однако, это может при­вести к потере данных в ОЗУ.

Канал 2 используется для генерации звука. Его выход OUT подключен к входу встроенного динами­ка. Для генерации сигналов применяется обычно режим 3. Для получения требуемой частоты звучания f, необходимо определить значение регистра (CR) = 1193180/f.

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

Адрес

Операция

Назначение

40h

запись

Загрузка счетчика канала 0

чтение

Чтение счетчика канала 0

41h

запись

Загрузка счетчика канала 1

чтение

Чтение счетчика канала 1

42h

запись

Загрузка счетчика канала 2

чтение

Чтение счетчика канала 2

43h

запись

Запись управляющего слова в регистр режима канала

Пример: прочитать слово состояния канала 0.

mov al,11100010b ;команда RBC: не запо­минать СЕ, читать состояние,

канал 0

out 43h,al ;засылка в управляющий регистр

in ah,40h ;в АН - слово состояния ;канала 0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]