Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП КурсРасч9-1.doc
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

6.2.Варианты шаблона "Динамическая индикация"

Каталоги этого раздела немногочисленны и рассматривают два варианта программной поддержки динамической индикации с заданием частоты сканирования таймером прибора 8155 и внешним таймером, имитируемым возможностями симулятора-отладчика.

Вариант с заданием частоты сканирования внешним генератором. Схема динамической индикации этого варианта (рис. 6.10) предполагает использование внешних регистров хранения кодов индикатора и стробов разрешения в виде отдельных регистров, расположенных в пространстве I/O (port_data, расположенный по адресу 80h, и port_stb – по адресу 81h). Внешний генератор частоты сканирования подключен ко входу запроса прерывания (в симуляторе используется R7.5). Подробности подключения аппаратных средств содержатся в файле IND1.INC и в командном файле IND1.ZGR.

Рис. 6.46. Схема алгоритма программной поддержки динамической индикации

После выполнения инициализации и загрузки режима работы индикаторного устройства (блоки 1...3) производится переход на метку выбранного варианта загрузки регистров RG_7_SEG, разрешение прерывания по выбранному входу, глобальное разрешение прерывания и, наконец, ожидание прерывания, которое производится с частотой сканирования. ППОП циклически читает код из указанного буфера данных и буфера стробов и загружает соответствующими данными ячейки пространства I/O. Текст ППОП приведен ниже.

DEFSEG RST75SEG,CLASS=CODE,START=3CH

SEG RST75SEG

PUSH H ; сохранение всех используемых

PUSH D ; в ППОП регистров в стеке

PUSH PSW ;

MVI A,0

OUT PRT_STB ; запрет вывода информации

; на индикацию и сброс триггера

; запроса прерывания

LHLD POINT ; загрузка текущего значения

; указателя.

LXI D,SHIFT-1

MOV A,M ; чтение буфера данных

OUT PRT_DATA ; вывод данных

INX H ; модификацию указателя

SHLD POINT ; сохранение нового значения

; указателя.

DAD D ; вычисление указателя в буфере

MOV A,M ; чтение значения строба

OUT PRT_STB ; вывод строба индикации

; и разрешение очередного запроса

; прерывания.

INX H ; модификация указателя

MOV A,M ; проверка достижения конца буфера

CPI KONEC

JNZ END_SUB

LXI H,RG_7_SEG ; переустановка указателя

SHLD POINT ; на начало буфера

END_SUB:

; счетчик мигания символа "G"

; обрабатывается в главной

; программе

LDA COUNT ; загрузка счетчика миганий

INR A ; модификация счетчика

STA COUNT ; сохранение счетчика миганий

LDA count_out_file

INR A

STA count_out_file

POP H

POP D

POP PSW

EI

RET

Подпрограмма начинается с вывода кода 0 на все разряды регистра разрешения, затем выводит данные и только после этого выводит строб разрешения. Таким образом реализуется временная диаграмма, показанная на рис. 3.9. Адрес указателя записи стробов разрешения вычисляется в программе за счет введения константы SHIFT, которая учитывает сдвиг одного буфера относительно другого. Такая возможность обеспечивается парным перемещением указателей во время работы.

Замечание. После метки END_SUB вставлен фрагмент, который ограничивает выходную информацию, выводимую во внешний файл, что является особенностью используемой версии симулятора-отладчика.

Вариант с заданием частоты сканирования от таймера прибора 8155. Данный вариант отличается от предыдущего использованием программной модели таймера, реализованной в симуляторе-отладчике. Добавление упрощает командные файлы отладчика и вводит в раздел инициализаций фрагмент программирования таймера прибора 8155. В остальном шаблоны одинаковы. Дополнительную информацию по данному шаблону можно найти в [6], поскольку этот шаблон используется в лабораторном цикле изучаемой дисциплины.