Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)

Модели (hardware):






Награды сайта
Награды сайта

Учебная модель ЭВМ: блок таймеров

Блок таймеров включает три однотипных канала таймеров Т1(адрес 1), Т2(адрес 3), Т3 (адрес 5) со своими регистрами управления CT1R (адрес 2), CT2R (адрес 4), CT3R (адрес 6) и общий регистр состояний SR (адрес 0).

Каждый таймер может независимо работать в режиме реверсивного счётчика меток времени. Следует отметить, что длительность такта полагалась (весьма условно!) равной 1 мс, но реально она значительно больше и зависит от машины, на которой работает модель. Например, на моей машине такт таймера равен примерно 0,016 с.

Каждый таймер снабжен предделителем с коэффициентом деления от 1 до 99, что позволяет выбирать диапазон измеряемых отрезков времени в широких пределах.

Таймеры могут работать как на сложение, так и на вычитание. Переход 99999 => 0 при сложении или 0 => 99999 при вычитании вызывают установку в «1» соответствующего флага переполнения в регистре SR:

  • Т1 – в пятом (младшем) разряде регистра SR,
  • Т2 – в четвёртом разряде,
  • Т3 – в третьем разряде
и формирование запроса на прерывание, если прерывание от соответствующего таймера разрешено. При этом счёт в таймере не прекращается.

Все шестиразрядные регистры управления таймерами имеют одинаковый формат:

  • разряд 0 (старший) – не используется;
  • разряды 1 и 2 задают коэффициент К деления предделителя от 01 до 99;
  • разряд 3 определяет направление счёта: «0» – инкремент, «1» – декремент;
  • разряд 4, будучи установленным в «1», разрешает формирование запроса на прерывание при переполнении этого таймера;
  • разряд 5 включает («1») или выключает («0») счёт.

Сброс флагов переполнения таймеров в регистре SR осуществляется только программно по командам:

Десятичное
число
Команда
101сбросить флаг переполнения таймера Т1
102сбросить флаг переполнения таймера Т2
103сбросить флаг переполнения таймера Т3

Константы кодов этих команд должны выводится по адресу 0 блока таймеров (регистра SR).

Пример простой программы: подавать короткий звуковой сигнал каждые 10 сек.

Напомним, что такт таймера может изменяться в зависимости от ЭВМ, на которой работает модель. Если считать, что длительность такта составляет 16 мс, то для отсчёта отрезка времени в 10 сек. потребуется 10000 / 16 = 625 тактов.

МеткаКомандаПримечание
M0:   RD #625 ; загрузка константы, соответствующей задержке в 10 сек.
 OUT 21 ; в регистр таймера Т1;
 RDI 1101 ; запуск таймера с коэффициентом деления К=1
 OUT 22 ; на вычитание, прерывание запрещено;
M1:   IN 20 ; анализ регистра состояния блока таймеров
 JZ M1 ; и возврат, если флаг переполнения не установлен;
 RDI 1000; останов
 OUT 22; таймера;
 RD #101; сброс
 OUT 20; флага переполнения FT1;
 RD #200; задаём частоту звучания 200 Гц
 OUT 30; в регистр частоты тоногенератора;
 RD #300; задаём длительность звучания – 300 мс
 OUT 31; и включает звук;
 JMP M0 ; повторяем бесконечный цикл.

Внимание. Перед запуском этого примера следует подключить к системе не только блок таймеров, но и тоногенератор.


© Жмакин Анатолий Петрович (Курский государственный университет). anatoly.zhmakin@gmail.com

Оформление Web-страницы - Е.А.Еремин, 2010


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com