Дисплей (рис. 8.11) представляет собой модель внешнего устройства, реализующую функции символьного дисплея. Дисплей может отображать символы, задаваемые ASCII-кодами, поступающими на его регистр данных. Дисплей включает:
видеопамять объемом 128 слов (ОЗУ дисплея);
символьный экран размером 8 строк по 16 символов в строке;
четыре программно-доступных регистра:
• DR (адрес 0) — регистр данных;
• CR (адрес 1) — регистр управления;
• SR (адрес 2) — регистр состояния;
• AR (адрес 3) — регистр адреса.
Рис. 8.11. Контроллер дисплея
Через регистры адреса AR и данных DR по записи и чтению осуществляется доступ к ячейкам видеопамяти. При обращении к регистру DR по записи содержимое аккумулятора записывается в DR и в ячейку видеопамяти, адрес которой установлен в регистре AR.
Регистр управления CR доступен только по записи и содержит в 4-м и 5-м разрядах соответственно два флага:
Е — флаг разрешения работы дисплея; при Е = 0 запись в регистры AR и DR блокируется;
А — флаг автоинкремента адреса; при А = 1 содержимое AR автоматически увеличивается на 1 после любого обращения к регистру DR — по записи или чтению.
Изменить значения этих флагов можно, если записать по адресу CR (по умолчанию — 11) код ххх0пп, при этом изменение 4-го и 5-го разрядов регистра CR произойдет согласно выражению (8.1).
Для программного управления дисплеем предусмотрены две команды, коды которых должны записываться по адресу регистра CR, причем в третьем разряде командных слов обязательно должна быть 1:
xxxl0l — очистить дисплей (действие команды эквивалентно нажатию кнопки Очиститьв окне Дисплей),при этом очищается видеопамять (в каждую ячейку записывается код пробела— 032), устанавливается в 000 регистр адреса AR и сбрасываются флаги ошибки Err и автоинкремента А;
ххх102 — сбросить флаг ошибки Err.
Рис. 8.12. Окно обозревателя контроллера дисплея
Регистр состояния SR доступен только по чтению и содержит единственный флаг (в пятом разряде) ошибки Err. Этот флаг устанавливается аппаратно при попытке записать в регистр адреса число, большее 127, причем как в режиме прямой записи в AR, так и в режиме автоинкремента после обращения по адресу 127. Сбрасывается флаг Err программно или при нажатии кнопки Очистить в окне Дисплей (рис. 8.12).