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

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

В качестве счетчиков-таймеров в компьютерах XT применялась микросхема i8253, а в AT — более быстродействующая i8254, которая с процессорами 80286 могла работать без тактов ожидания. Интегрированный таймер, функционально и программно совместимый с 8253/8254, содержит в себе периферийный контроллер 82C206, который использовался при построении системных плат на основе микропроцессоров i286/i386. На современных системных платах те же функции берет на себя чипсет, сохраняя программную совместимость с 8253/8254.

Микросхемы i8253 и i8254 представляют собой трехканальные программируемые счетчики-таймеры, функционально почти совпадающие, но имеющие разное быстродействие (со стороны системной шины) и разное назначение выводов. Внутренние счетчики микросхемы имеют разрядность 16 бит, но общение с ними возможно только 8-битными операциями. При этом можно задавать значение только младшего байта счетчика (LSB), только старшего (MSB) или обоих (LSB/MSB), причем сначала передается младший, а затем старший байт. Программирование микросхемы осуществляется записью байтов в управляющий регистр по отдельности для каждого канала.

Все каналы таймера IBM PC AT работают в режиме генерации импульсов, в канале 2 используется управляющий вход GATE, высокий уровень которого разрешает счет (формирование выходного сигнала). Счет для каналов 0 и 1 разрешен постоянно. Входная частота для всех каналов — 1,19318 МГц.

На рисунке 4.1 показана упрощенная схема подсистемы таймера компьютера IBM PC AT. Канал 0 (Out0) подключен к контроллеру прерываний и используется системными часами для отсчета времени суток и для синхронизации некоторых дисковых операций. Этот канал работает в режиме 3 и генерирует импульсы с частотой примерно 18,206 Гц. Сигнал с выхода канала инициирует  аппаратное прерывание таймера (IRQ0), обработчик которого (INT 08h) увеличивает показание счетчика, расположенного в области данных BIOS (4 байта по адресу 0040:006С). Такое накопление обычно называется подсчетом времени суток. Число 0 соответствует полуночи (00:00:00), а когда счетчик достигает значения 1573040 (1800В0h), что соответствует 24:00:00, он сбрасывается в нуль. Любое время в течение суток легко определяется делением показателя счетчика на 18,2 для каждой секунды. Счетчик времени используется в большинстве операций, связанных со временем.