Часть III. Описание архитектуры учебной эвм
Скачать 2.15 Mb.
|
Учебная модель ЭВМ: контроллер дисплеяДисплей представляет собой модель внешнего устройства, реализующую функции символьного дисплея. Дисплей может отображать символы, задаваемые ASCII-кодами, поступающими на его регистр данных. Дисплей включает: видеопамять объемом 128 слов (ОЗУ дисплея); символьный экран размером 8 строк по 16 символов в строке; четыре программно-доступных регистра: DR (адрес 0) — регистр данных; CR (адрес 1) — регистр управления содержит следующие флаги (устанавливаются и сбрасываются программно): Е – флаг разрешения работы дисплея; при Е = 0 запись в регистры AR и DR блокируется; А – флаг автоинкремента адреса; при А = 1 содержимое AR автоматически увеличивается на 1 после любого обращения к регистру DR – по записи или чтению. SR (адрес 2) – регистр состояния содержит единственный флаг Err – ошибки устанавливается аппаратно при попытке записать в регистр адреса число, большее 127, сбрасывается программно; AR (адрес 3) – регистр адреса. Доступ в видеопамять осуществляется через «окно интерфейса» необходимо сначала загрузить в регистр адреса AR номер ячейки видеопамяти, тогда обращение к регистру данных будет означать обращение (ввод или вывод) к ячейке видеопамяти с указанным адресом. Контроллер дисплея выполняет две команды при выводе соответствующих кодов по адресу 1:
Пример простой программы, выводящей на дисплей (в начало экрана) слово «Май»:
Ещё один пример программы, выставляющей в начало каждой строки её номер:
8.6.3. Блок таймеров Блок таймеров (рис. 8.13) включает в себя три однотипных канала, каждый которых содержит: пятиразрядный десятичный реверсивный счетчик Т, на вход которого поступают метки времени (таймер); программируемый предделитель D; регистр управления таймером CTR; флаг переполнения таймера FT. Регистры таймеров Т доступны по записи и чтению (адреса 1, 3. 5 соответственно для Т1, Т2, ТЗ). Программа в любой момент может считать текут содержимое таймера или записать в него новое значение. Рис. 8.13. Блок таймеров На входы предделителей поступает общие для всех каналов метки времени CLK с периодом 1 мс. Предделители в каждом канале программируются независимо, поэтому таймеры могут работать с различной частотой. Регистры управления CTR доступны по записи и чтению (адреса 2, 4, 6) и содержат следующие поля: Т (разряд 5) — флаг включения таймера; ЕI (разряд 4)— флаг разрешения формирования запроса на прерывание при переполнении таймера; I/D (разряд 3)— направление счета (инкремент/декремент), при I/D = 0 таймер работает на сложение, при I/D = 1 — на вычитание; k(разряды [1:2]) — коэффициент деления предделителя (от 1до 99). Флаги переполнения таймеров собраны в один регистр — доступный только по чтению регистр состояния SR, имеющий адрес 0. Разряды регистра (5, 4 и 3 для Т1, Т2, ТЗ соответственно) устанавливаются в 1 при переполнении соответствующего таймера. Для таймера, работающего на сложение, переполнение наступает при переходе его состояния из 99 999 в 0, для вычитающего таймера — переход из 0 в 99 999. В окне обозревателя (рис. 8.14) предусмотрена кнопка Сброс, нажатие которой сбрасывает в 0 все регистры блока таймеров, кроме CTR, которые устанавливаются в состояние 001000. Таким образом, все три таймера обнуляются, переключаются в режим инкремента, прекращается счет, запрещаются прерывания, сбрасываются флаги переполнения и устанавливаются коэффициенты деления предделителей равными 01. Рис. 8.14. Окно обозревателя блока таймеров Программное управление режимами блока таймеров осуществляется путем записи в регистры CTR соответствующих кодов. Запись по адресу SR числа с 1 в третьем разряде интерпретируется блоком таймеров как команда, причем младшие разряды этого числа определяют код команды: ххх100 — общий сброс (эквивалентна нажатию кнопки Сброс в окне обозревателя); ххх101 — сброс флага переполнения таймера FT1; ххх102 — сброс флага переполнения таймера FT2; ххх103 — сброс флага переполнения таймера FT3. |