Автоматизированные системы контроля и управления РЭС, конспект лекций, страница 30

BIT_MASK (bank, bitnumber) - маскирования бита в режиме bank.

DO_SET_BIT (bank, bit, time, background) - установить bit в регистре bank на время time в фоновом или основном режиме.

Процедуры таймирования:

PAUSE (timeout).

START_TIMER (timer) - запуск таймера.

TIMER_READ (timer, elapsed) - считывание текущего времени с записью в elapsed.

Пример программы с использованием такого рода процедур:

Измерение выходных ВАХ биполярного транзистора: ik=f(UКЭ, iб);

Имеющиеся устройства:  ЦАП1 - UКЭ; ЦАП2 - Iб; АЦП - Iк.

Значения Iк поместим в массив I_C;

Используем процедуры: DA_OUT (channel, value) и AD_IN (channel, data, length, background).

Введем идентификаторы:

I_B_MIN dw 0

I_B_MAX dw 1000

U_CE_MIN dw 0

U_CE_MAX dw 20000

IO_B dw 100; приращение тока базы, мкА

U0_CE dw 200; приращение UКЭ, мВ

I_C dw 1000 DUP (0)

Для краткости запишем эту программу на языке Бейсик:

FOR I_B=I_B_MIN TO I_B_MAX STEP IO_B;

CALL DA_OUT (1, I_B);

FOR U_CE=U_CE_MIN TO U_CE_MAX STEP UO_CE;

CALL DA_OUT (2, U_CE)

CALL ADIN (1, I_C, 1000, 0)

CALL ACCUM (I_C, 100, IC_SR)

NEXT U_CE

NEXT I_B

Современные языки программирования высокого уровня предусматривают различные возможности подключения к ним программ, написанных на языке ассемблера. Рассмотрим их на примере гибридного программирования TP_ASM.

5.3. Гибридное программирование ССОД

Современные алгоритмические языки предусматривают включение в них ассемблерных процедур или функций, а также ассемблерных вставок.

а) PASCAL+ASSEMBLER.

В версии ТР6.0 и выше имеется встроенный ассемблер, что позволяет непосредственно включать в паскалевский текст ассемблерные вставки с помощью составного оператора asm end:

ASM

<операторы ассемблера>

END

Подключение asm – процедур.

Пример1.

Модуль языка Паскаль:

Program TPASCAL

{$L Libra.obj} <директива компилятора, подключение объектного файла Libra.obj>