Методические указания по лабораторным работам по курсу «Аппаратные средства компьютерных систем», страница 27

Рисунок 4.1 — Подсистема таймера компьютера IBM PC AT

Канал 1 (Out1) используется для регенерации динамической памяти компьютера. Сигнал с выхода канала инициирует запрос к каналу ПДП, который выполняет обновление содержимого памяти. Использовать этот канал не рекомендуется, т.к. его перепрограммирование может привести к нарушениям в работе основной оперативной памяти компьютера.

Канал 2 связан с динамиком и вырабатывает сигналы прямоугольной формы заданной частоты для генерации различных звуков или музыки либо как генератор случайных чисел. Управление динамиком осуществляется программным путем через системный порт 61h битами 0 и 1. Если бит 0 установлен в 1, то таймер задает частоту звучания динамика, а нулевое значение бита 0 блокирует работу таймера при генерации звука. Если бит 1 равен 1, то динамик начинает издавать звук и продолжает звучать до тех пор, пока бит 1 не станет равным 0.

Таймеру соответствуют четыре порта ввода-вывода, которые имеют адреса и назначение, показанные в таблице 4.1. Следует помнить, что по адресам 40h-42h возможны операции чтения и записи, а порту 43h разрешена только операция записи.

Таблица 4.1 – Регистры таймера

Порт

Назначение

40h

Счетчик 0 — системные часы (генерация сигнала IRQ0 каждые 54,936 мс).

Режим 011, LSB/MSB, Binary, константа счетчика = 0 (соответствует коэффициенту деления 65536)

41h

Счетчик 1 — регенерация памяти (DRQ0 для XT, логика регенерации — для AT).

Режим 010, LSB, Binary, константа счетчика =12h (18)

42h

Счетчик 2 — генератор звука.

Вход GATE от бита 0 порта В 8255 (061h).

Режим 011, LSB/MSB, Binary, значение счетчика определяет высоту тона

43h

Управляющий регистр

Биты 7,6 — выбор счетчика 0, 1, 2.

Биты 5,4 — режим обращения:

00 — защелка текущего значения;

01 — LSB — только младший байт;

10 — MSB — только старший байт;

11 — LSB/MSB — сначала младший, затем старший байт.

Биты 3-1 — режим счетчика:

000 — прерывание по счетчику;

001 — ждущий мультивибратор (одновибратор, у 8254 несколько отличается от 8253);

x10— генератор коротких импульсов заданной частоты;

x11 — генератор меандра;

100 — счетчик событий с разрешением;

101 — счетчик событий с перезапуском.

Бит 0 — 0 = Bin (двоичный счет), 1 = BCD (двоично-десятичный счет)