Сопряжение компьютеров с внешними устройствами в стандарте КАМАК. Заярный В.П - 52 стр.

UptoLike

52
procedure Fzapusk;
begin
port[$108]:=adcaddr;
port[$101]:=0;
port[$102]:=25;
end;
Чтение данных из ОЗУ АЦП
После выполнения команды «Запуск» АЦП производит оцифровку
2048 точек сигнала и записывает оцифрованные значения в ОЗУ, состоя-
щее из 4096 7-битных ячеек.
Чтение данных из ОЗУ АЦП производится многократной подачей
F(0). Одно выполнение F(0) осуществляет чтение двух ячеек ОЗУ на ма-
гистраль КАМАК (и
, соответственно, в регистр R контроллера CC-08).
Чтение данных из контроллера в ОЗУ ЭВМ производится чтением из
портов 104Н и 105Н. Итак, заполнение массива данных в ОЗУ компьюте-
ра происходит так:
procedure getdata;
begin
for i:=1 to n do d[i]:=readOZU;
end;
где функция readOZU при ее вызове читает из ОЗУ АЦП одно значение
оцифрованного сигнала:
function readOZU:word;
var a,b:byte;
begin
port[$108]:=adcaddr; {Номер
станции АЦП}
port[$101]:=0; {A(0)}
port[$102]:=0; {F(0)}
a:=port[$104] and 127; {младшие 7 бит}
b:=port[$105] and 127; {старшие 7 бит}
readOZU:=b shl 7 + a; {Рассчитываем оцифр. значение}
end;
Здесь после чтения из порта 104Н или 105Н мы сбрасываем старший
бит путем применения операции «логическое И» с аргументом 01111111
2
(127
10
).
Таким образом, путь прохождения данных можно представить схемой
(рис. 11).