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

Опис процедур та функцій

При описі процедур та функцій використовуються слідуючи позначення:

А - субадреса САМАС;

В - базовий номер порту крейт-контролера;

С - номер активного крейта;

D - дані САМАС;

F - функціїї САМАС;

N - номер станції CАМАC.

Процедура CamBase

Дія: Змінює базовий номер порту крейт-контролера.

Декларація: CamBase(B:byte);

Примітки:

Базовий номер порту крейт-контролера за умовчанням - $3А, що відповідаєє діапазону адрес $3AO...$3AF в адресному просторі вводу-виводу IBM PC. Вибрана базова адреса не повинна бути зайнята іншими пристроями IBM PC, і повинна бути однозначна відповідність між адресою, яка задається в цій процедурі, та встановленою на адресних перемикачах інтерфейсної карти контролера.

Наприклад:

CamBase($10); {Встановити для регістрів контролера}

{діапазон адрес $100...$10F}

Процедура CamCrate

Дія: Змінює номер активного крейта.

Декларація: CamCrate(C:byte);

Примітки:

До одної інтерфейсної карти може бути підключено до 4 крейтів. Звернення буде проводитись до активного в даний момент крейта. За умовчанням, якщо даною процедурою не вибрано друге значення, - активний крейт1. Значення параметра С повинно бути в діапазоні 1...4.

Наприклад:

CamCrate(3); {Встановити активним крейт 3}.

Процедура Cam

Дія: Виконує на магістралі САМАС команду керування.

Декларація: Cam(N, A, F: byte);

Примітки:

Хоча процедура призначена для виконання команд керування (F8:11, дані не використовуються), її можна використовувати і для виконання команд запису або читання, але при цьому записуються дані, які збереглися в регістрах контролера від попередньої операції, а дані, що зчитуються, ігноруються.

Наприклад:

var

SubAddr,Func:byte;

сonst

ADC=16;

begin

For SubAddr: =0 to 15 do For Func : =0 to 32 do

begin

Write(’Субадрес ’, SubAddr:2,’. функція’, Func);

Cam(ADC , SubAddr , Func);

If CamX then Writeln( ’. X=1 ’)

else Writeln( ’ . X=0 ’)

end;

end.

В цьому прикладі для модуля ADC, що встановлено в крейті на станції з номером 16, скануються всі субадреси та функціїї та перевіряється значення відгуку Х.

Процедура Cam0

Дія: Виконує на магістралі САМАС команду запису САМАС з 16-розрядними даними.

Декларація: Cam0(N,A,F:byte; D:word);

Наприклад:

Cam0(1,0,16,$FFFF);

Записує за командою F(16) всі одиниці в 16-розрядний регістр з субадресою 0 в модулі, що встановлений на станцiї 1.

Процедура Cam024

Дія: Виконує на магістралі САМАС команду запису з 24-розрядними даними.

Декларація: Cam024(N,A,F:byte; D:LongInt);

Примітки:

Старший байт 32-розрядних даних не використовується.

Наприклад:

Cam024(1,0,16,$FFFFFF);

Записує за командою F(16) всі одиниці в 16-розрядний регістр з субадресою 0 в модулі, що встановлений на станції 1.

Процедура CamCi

Дія: Записує байт в порт керування контролера.

Декларація: CamCI(I:byte);

Примітки:

Значення окремих бітів порту керування:

¦ x ¦ AX4 ¦ AX3 ¦ AX2 ¦ AX1 ¦ I ¦ C ¦ Z ¦

Значення, що найчастіше вживаються: I, C, Z оголошені в модулі BROCAMAC, більш докладніше призначення бітів порту керування описано в документації на крейт-контролер.

Наприклад:

СamCI(C+Z);

Викликає виконання операцій С та Z на магістралі САМАС.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]