Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MARUSIA / DIPLOM99 / ALL.RTF
Скачиваний:
14
Добавлен:
16.04.2013
Размер:
615.94 Кб
Скачать

1.4.3. Взаимодействие процедур и функций

Для наглядности процесса смотрите рисунок 1_4.

Файл Measure.pas запускает на выполнение основной блок нашей программы.

С помощью функции my_menu осуществляется вывод меню на экран и выбор пользователем необходимой задачи. Результатом выполнения функции является номер меню, выбранный пользователем. В дальнейшем, этот номер анализируется и осуществляется вызов “главной” процедуры из модуля Work.pas. Функция my_menu, в свою очередь, вызывает “вспомогательную” функцию sel, результат которой виден на экране ввиде выделенной строки в меню.

Далее опишем работу программы при выборе пользователем определённых пунктов меню:

  1. “Измерение температуры в данный момент”

Если выбран этот пункт меню, то основной программе из функции my_menu передаётся значение равное единице. По этому значению основная программа начинает выполнение первого пункта путём вызова процедуры vv. Она же в свою очередь вызывает и последовательно выполняет процедуры p1, wn, V, cl_w, w3. Функция V в свою очередь вызывает вспомогательную функцию Transf. Выполнение пункта завершается возвращением в основную программу.

  1. “Полный процесс”

При выборе этого пункта, основной программе соответственно передаётся значение два из функции my_menu. Выполнение этого процесса обеспечивает процедура mp, которая использует для этого ПФ: p1, dan, val, wn, meas, cl_w. Завершается пункт выходом в основное меню.

  1. “Съём данных с осциллографа ”

В этом случае , аналогично предыдущим, по переданному значению 3 начинаем выполнять третий пункт. “Главная” процедура основной программы mp1. Она вызывает: p1, dan, val, meas, wn, и после выполнения возвращается в меню.

  1. “Команда на Г5-75”, то есть управление подачей импульсов генератором

За пункт номер 4 отвечает процедура generator. Её “вспомогательными” являются: p1, dan, val, wn,cl_w. Далее следует возвращение в основную программу.

  1. “Выход” При выборе последнего пятого пункта заканчивается выполнение нашей основной программы и, следовательно, мы выходим в MS-DOS.

1.4.4. Внутренняя структура процедур и функций. Описание их работы.

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

Функция sel

Формирование номера нового

выделяемого пункта меню

начало

Удаление выделения

пункта меню

Удаление подсказки

Выделение нового

пункта меню

Подсказка для нового пункта

Стандартные значения цветов

Результат функции

выход

Листинг функции:

function sel(i:integer{выделенный в данный момент элемент};

priz:integer{куда идти вверх или вниз}):integer;

var p:integer;

begin

textbackground(black);

textcolor(lightgray);

gotoxy(xm,ym+i-1);

write(mas[i]);

textbackground(blue);

gotoxy(1,hl_y);

clreol;

if (i=mm) and (priz=1){вниз}

then p:=1

else if (i=1) and (priz=-1){вверх}

then p:=mm

else p:=i+priz;

textbackground(red);

textcolor(yellow);

gotoxy(xm,ym+per-1);

writeln(mas[p]);

textbackground(blue);

textcolor(15);

gotoxy(1,hl_y);

write(hlp[p]);

textbackground(black);

textcolor(lightgray);

sel:=p;

end;

Раздел описанийimplementation модуляmenu.pas начинает функция sel.Главным отличием этой функции от других является то, что она доступна лишь внутри этого модуля. Поскольку она является вспомогательной по отношению к функцииmy_menu, которая будет описана ниже, то её внешний вызов не имеет смысла. Главной задачей этой функции является выделение соответствующего пункта меню. Номер этого пункта определяется из данных, передаваемых функции в качестве параметров:

  • i: integer – параметр-переменная, содержащий выделенный в данный момент пункт меню. Так как у нас пункты меню пронумерованы от 1 до 5, то и значение параметра возможны из этого интервала

  • priz: integer – данный параметр определяет куда движется курсор: вверх, вниз или остаётся на месте

Возвращает функция число целого типа integer, определяющее новый выделенный пункт меню. В процессе её выполнения, удаляется выделение пункта меню, путём вывода на том же месте текста стандартного цвета, осуществляется вычисление номера нового пункта меню и выделение вычисленного пункта меню.

. Функция my_menu

Выделение начального пункта

Опрос клавиатуры и реакция на нажатие клавиши

Листинг функции:

function my_menu(i:integer{номер выделенного пункта}):integer;

var ii:integer;

nom:integer;{номер текущего меню}

c:char;

begin

textmode(CO80);

textbackground(black);

clrscr;

HighVideo;

textcolor(15);

textbackground(blue);

gotoxy(1,1);write(' 1999 МИЭТ Дипломный проект. Автор - Маслова М.А. ');

LowVideo;

textcolor(lightgray);

textbackground(black);

for ii:=0 to mm-1 do

begin

gotoxy(xm,ym+ii);

write(mas[ii+1]);

end;

nom:=sel(i,0);

c:=#30;

while not (c=#13) do

begin

c:=readkey;

if (c=#0) then

begin c:=readkey;

case c of

#72{курсор вверх}:nom:=sel(nom,-1);

#80{курсор вниз }:nom:=sel(nom,1);

end;

end

end;

my_menu:=nom;

end;

Эта функция отвечает за формирование на экране меню пользователя и выбор пункта меню. Она используется основной программой для выбора решаемой задачи. В качестве единственного параметра функции используется числовое значение, определяющее номер выделенного пункта меню, а в качестве результата функции – номер выбранного пункта меню.

В процессе выполнения функции формируется на экране меню и отслеживается нажатие кнопок пользователем. Работа функции начинается с установки начальных значений экрана и выделения, переданного нам в качестве начального пункта меню. Далее программа зацикливается и единственным условием выхода из цикла является нажатие клавиши Enter. Внутри цикла опрашивается клавиатура и при нажатии управляющих клавиш курсор вверх, курсор вниз осуществляется вызов процедурыsel с соответствующими параметрами.

Процедура р1

Начальные установки

экрана

Формирование синей

строки вверху экрана

Вывод надписи

Стандартные значения

Листинг процедуры:

procedure p1(str:string);

begin

textcolor(lightgray);

textbackground(black);

clrscr;

textcolor(15);

textbackground(blue);

clreol;

gotoxy((80-length(str)) div 2,1);write(str);

textcolor(lightgray);

textbackground(black);

end;

Это процедура оформления программы. Она формирует в верхней строке экрана надпись. Параметром процедуры является строка текста.

Ф

начало

ункцияdan

Начальные установки

цветов

Ввод значения

Вывод строки серым цветом

Листинг функции:

function dan(y:integer;str:string):string;

var st:string;

begin

textcolor(green);

textbackground(black);

gotoxy(3,y);write(str);readln(st);

textcolor(lightgray);

gotoxy(3,y);write(str,st);

dan:=st;

end;

Функция ввода данных пользователя. Она имеет два параметра:

  • y: integer – номер строки экрана, в которой будет осуществляться ввод данных;

  • str: string - строка-подсказка.

В качестве результата функция возвращает значение типа string. В ходе работы функции выводится строка-подсказка зеленым цветом. После чего ожидается ввод данных с клавиатуры. Нажатие клавишиEnter вызывает изменение цвета строки на серый.

Процедура wn

начало

Установка цветов

Расчет длины и

положения рамки

Вывод рамки

Вывод текста в рамке

Стандартные установки цветов

Листинг процедуры:

procedure wn(color:integer;str:string;s:integer);

var h,v,v1,i:integer;

begin

textcolor(15);

textbackground(blue);

if length(str)<18 then h:=24

else h:=length(str)+2;

v:=(80-h-2) div 2;

v1:=(80-length(str)) div 2;

gotoxy(v,yr+s);write('+');

for i:=1 to h do write('-');

write('+');

gotoxy(v,yr+s+1);write('¦');write(' ':h);write('¦');

gotoxy(v,yr+s+2);write('¦');write(' ':h);write('¦');

gotoxy(v,yr+s+3);write('¦');write(' ':h);write('¦');

gotoxy(v,yr+s+4);write('+');

for i:=1 to h do write('-');

write('+');

textcolor(color);

textbackground(blue);

gotoxy(v1,yr+s+2);write(str);

textcolor(lightgray);

textbackground(black);

end;

Данная процедура предназначена для вывода надписи в рамке. В качестве параметров используются:

  • color: integer – цвет надписи внутри рамки;

  • str: string - надпись внутри рамки;

  • s: integer - сдвиг по оси У относительно глобальной константыyr;

В ходе работы процедуры определяется длина надписи, и если она меньше 18, то размер рамки устанавливается стандартным и равным 26 символам. В противном случае размер рамки вычисляется так, чтобы между рамкой и надписью было по одному пробелу с обеих сторон.

Процедура cl_w

Установка стандартных

цветов

Расчет длины и

положения рамки

Листинг процедуры:

procedure cl_w(s:integer);

begin

textcolor(lightgray);

textbackground(black);

gotoxy(1,yr+s);clreol;

gotoxy(1,yr+1+s);clreol;

gotoxy(1,yr+2+s);clreol;

gotoxy(1,yr+3+s);clreol;

gotoxy(1,yr+4+s);clreol;

end;

Процедура служит для удаления с экрана рамки, созданной процедурой wn,путём очистки строк экрана. Параметром процедуры является число, определяющее сдвиг по оси У относительно константыyr.

Процедура w3

Установка стандартных

цветов

Вывод рамки со

значениями

начало

Установка стандартных

цветов

Листинг процедуры:

procedure w3(s,t:real);

begin

textcolor(15);

textbackground(blue);

gotoxy(xr,7);write('+----------------------------+');

gotoxy(xr,8);write('¦ ¦');

gotoxy(xr,9);write('¦ Результат : ¦');

gotoxy(xr,10);write('¦ ¦');

gotoxy(xr,11);write('¦ Сопротивление,Ом :',s:7:3,' ¦');

gotoxy(xr,12);write('¦ Температура,К :',t:4:0,' ¦');

gotoxy(xr,13);write('¦ ¦');

gotoxy(xr,14);write('+----------------------------+');

textcolor(lightgray);

textbackground(black);

end;

Формирование рамки результата для пункта меню «Измерение температуры в данный момент». Параметры процедуры:

  • s: real - измеренное сопротивление;

  • t: real – вычисленная температура.

Процедуры и функции модуля Work.pas.

Функция transf

Функция арифметических преобразований данных, снятых с вольтметра

Листинг функции:

Function Transf: real;

Begin

if A[9]=$2b then

Transf:= ((A[2]-48)*exp(5*ln(10))+(A[3]-48)*exp(4*ln(10))

+(A[4]-48)*exp(3*ln(10))+(A[5]-48)*exp(2*ln(10))

+(A[6]-48)*10+(A[7]-48))*exp((A[10]-48)*ln(10))

else

Transf:= ((A[2]-48)*exp(5*ln(10))+(A[3]-48)*exp(4*ln(10))

+(A[4]-48)*exp(3*ln(10))+(A[5]-48)*exp(2*ln(10))

+(A[6]-48)*10+(A[7]-48))*exp(-(A[10]-48)*ln(10))

end;

Функция V

начало

Предустановка вольтметра

Съем данных с вольтметра

выход

Листинг функции:

function V:real;

begin

{Предустановка V7-34}

InterfaceClear;

Listener(20);

SendIt(FV); {Програмный идентификатор рода работ}

SendIt(ResV); {Программирование R}

SendIt(RV); {Прог.идент.предела и номера теста}

SendIt(AvpV); {автоматический выбор предела}

SendIt(TV); {програмный идентификатор "запуск"}

SendIt(ToV); {Периодический запуск}

SendIt(MV); {Програм.идент.выдачи информации}

SendIt(SinV); {Однократное измерение с выводом данных}

SendIt(EV); {идентификатор конца программы}

Unlisten;

Talker(20);

for i:=1 to 10 do A[i]:= Getbyte;

Untalk;

v:= Transf*1e3;

InterfaceClear;

end;

Функция однократного измерения данных вольтметром. В качестве результата возвращается числовое значение типа real, определяющее сопротивление.

Процедура vv

Листинг процедуры:

procedure vv;

var sop1,tem1:real;

F:text;

begin

p1(mas[1]);

wn(yellow+128,'ВНИМАНИЕ !!! ИДЕТ ПРОЦЕСС',0);

sop1:=v; tem1:=sop1*17.073+46.76;

cl_w(0);

w3(sop1,tem1);

assign(F,'c:\tp7\workpas\dat\temp.dat');

rewrite(f);

Writeln(F,'Температура (К): ',tem1);

Writeln(F,'Сопротивление (Ом): ',sop1);

close(F);

readkey;

end;

end .

Процедура измерения сопротивления, вычисления температуры и записи этих данных в файл с параллельным выводом на экран. Эта процедура вызывает процедуру оформления экрана P1, вывода рамки wn, опрашивает вольтметр посредством процедуры v и запоминает результат, вычисляет температуру, используя полученный результат, выводит данные на экран с помощью процедуры w3 и в файл, используя стандартные ПФTurbo Pascal.

Процедура generator

начало

Ввод количества импульсов

Посылка одиночного импульса

Посылка непрерывного импульса

Ввод интервала

между импульсами

выход

Листинг процедуры:

procedure generator;

var n,code,i,k:integer;

p:string;

Begin

p1(mas[4]);

p:=dan(4,'Сколько импульсов необходимо послать?:');

val(p,n,code);

if n=1 then begin

wn(YELLOW,'ОДИНОЧНЫЙ ИМПУЛЬС',0);

wn(15+128,'ДЛЯ ПОСЫЛКИ ИМПУЛЬСА НАЖМИТЕ НА ЛЮБУЮ КЛАВИШУ',6);

readkey;

cl_w(6);

InterfaceClear;

Listener(10);

{ SendIt(ResG);}

if g_p=false then SendIt(rpG);

SendIt(rpG);

g_p:=true;

Unlisten;

interfaceClear;

cl_w(0);

wn(yellow,'ИМПУЛЬС ПОСЛАН',0);

readkey;

end

else begin

p:=dan(5,'Задайте интервал между импульсами(ms):');

val(p,i,code);

if i=0 then begin

wn(YELLOW,'НЕПРЕРЫВНЫЙ ИМПУЛЬС',0);

wn(15+128,'ДЛЯ НАЧАЛА ПРОЦЕССА НАЖМИТЕ НА ЛЮБУЮ КЛАВИШУ',6);

readkey;

cl_w(6);

InterfaceClear;

Listener(10);

SendIt(npG);

g_p:=true;

Unlisten;

interfaceClear;

wn(15,'ДЛЯ ОКОНЧАНИЯ ПРОЦЕССА НАЖМИТЕ НА ЛЮБУЮ КЛАВИШУ',6);

readkey;

InterfaceClear;

Listener(10);

SendIt(RpG);

Unlisten;

interfaceClear;

end

else begin

wn(YELLOW,'СЕРИЯ ИМПУЛЬСОВ',0);

wn(15+128,'ДЛЯ НАЧАЛА ПРОЦЕССА НАЖМИТЕ НА ЛЮБУЮ КЛАВИШУ',6);

readkey;

cl_w(6);

InterfaceClear;

Listener(10);

if g_p=false then SendIt(rpG);

for k:=1 to n do

begin

SendIt(rpG);

delay(i);

end;

Unlisten;

interfaceClear;

cl_w(0);

wn(yellow,'ИМПУЛЬСЫ ПОСЛАНЫ',0);

readkey;

end;

end;

end;

Как и все главные процедуры несёт на себе функции управления решением поставленной задачи. При вызове процедуры передача параметров не требуется. Процедура делится на три части: одиночный импульс, непрерывный импульс, серия импульсов. Выбор необходимого режима работы генератора осуществляется полуинтеллектуальным методом, то есть путём анализа данных, введённых с клавиатуры на запросы компьютера. Для оформления экрана процедура использует функции p1, wn, cl_w. На различных этапах работы выводятся рамки с надписями-подсказками.

Процедура Meas

начало

Предустановка осциллографа

Предустановка генератора

Съём данных управления

с осциллографа

Преобразование снятых данных

Создание файла и запись

туда полученных результатов

выход

Procedure Meas;

Begin

{предустановка осциллографа}

Listener(30); {адресуем на прием}

Command(ZpOs); {запрещаем последовательный опрос}

sendIt(MOs); {начало передачи}

sendIt(COs); {в цикле}

sendIt(ScOs); {запомнить однократный цикл}

sendIt(SmOs); {однокр. режим с запретом выдачи запроса на}

{обслуживание}

sendIt(ScOs); {запомнить однократный цикл}

sendIt(EtOs); {конец передачи}

unlisten; {запрещаем прием данных осциллогафом}

{Генератора}

Listener(10); {адресуем на прием}

sendIt(Resg); {сброс}

sendIt(RpG); {ручной запуск}

sendIt(RpG); {}

sendIt(ZpG); {Внешний запуск}

unlisten;

{съем данных управления с осциллографа}

Listener(30); {адресуем на прием}

Command(ZpOs); {запрет последовательного опроса}

sendIt(MOs); {начало передачи}

sendIt($34); {}

sendIt($42);

sendIt(EtOs);

unlisten;

Talker(30);

for i:=1 to 31 do Up[i]:= GetByte;

Untalk;

{Съем данных с осциллографа}

Listener(30);

Command(ZpOs);

sendIt(MOs);

sendIt($32);

sendIt($42);

sendIt(EtOs);

unlisten;

Talker(30);

ss;

Untalk;

Listener(30);

Command(ZpOs);

sendIt(MOs);

sendIt(COs);

sendIt(ScOs);

sendIt(EtOs);

unlisten;

for i:=1 to 2047 do T[i]:= T[i]-128;

{Преобразование данных}

for i:=1 to 31 do

begin

if up[i]= $43 then

begin

case up[i+1] of

$30: Ku :=0.05;

$31: Ku :=0.1;

$32: Ku :=0.2;

$33: Ku :=0.5;

$34: Ku :=1;

$35: Ku :=2;

$36: Ku :=5;

$37: Ku :=10;

$38: Ku :=20;

$39: Ku :=50

else begin write ('Беда') end;

end;

end;

end;

for i:=1 to 31 do

begin

if up[i]= $45 then

begin

h:= up[i+1] and $0f*20;

h1:= up[i+2] and $0f;

h2:= h+h1;

case h2 of

0: Td := 50e-9; 1: Td := 100e-9; 2: Td := 200e-9;

3: Td := 500e-9; 4: Td := 1e-6; 5: Td := 2e-6;

6: Td := 5e-6; 7: Td := 10e-6; 8: Td := 20e-6;

9: Td := 50e-6; 10: Td := 100e-6; 11: Td := 200e-6;

12: Td := 500e-6; 13: Td := 1e-3; 14: Td := 2e-3;

15: Td := 5e-3; 20: Td := 10e-3; 21: Td := 20e-3;

22: Td := 50e-3; 23: Td := 100e-3; 24: Td := 200e-3;

25: Td := 500e-3; 26: Td := 1; 27: Td := 2;

28: Td := 5; 29: Td := 10; 30: Td := 20

else begin writeln('Беда с дискретизацией') end;

end

end

end;

i:= st;

k:=0;

Repeat

k:=k+1;

U1[i]:= T[i]*Ku/255;

Td1[i]:= (i-1)* Td;

i:=i+st

Until i>2047;

{Создание файла данных}

if (Rez=-1) then S:='.txt' else

begin

Tk:= 17.07*Rez+46.78;

Tk1:= Round(Tk);

Str(Tk1,S);

S:= S+ '.txt';

end;

f1:= f0 + S;

Assign(Fal,'c:\TP7\WORKPAS\DAT\' +f1);

Rewrite(fal);

i:=st;

Repeat

Writeln(Fal,Td1[i],' ',U1[i]);

i:=i+st

Until i>2047;

if (Rez=-1) then begin

gotoxy(xr-6,yr+7);

TextColor(15);

textbackground(blue);

Writeln(' Файл ',f1,' создан.')

end

else Writeln('Файл ',f1,' для температуры ',Tk1,' K создан.');

Close(Fal);

g_p:=false;

end;

Эта процедура является основной рабочей процедурой нашей программы. Её задачами являются: предустановки устройств (очистка линии КОП, программирование каждого прибора), съём данных, преобразование данных и создание выходных файлов, являющихся основным результатом выполнения пунктов «Полный процесс» и «Съём данных с осциллографа» основного меню. Очистка линий, сброс устройств в начальное состояние, программирование устройств, съем данных осуществляется использованием стандартных процедур и функций поставляемых с контроллером канала общего пользования (их описание см. в прилагаемой к адаптеру документации).

Перед созданием файла данных на жёстком диске внутри процедуры формируется его имя. Оно состоит из четырёх частей:

  • путь к каталогу с файлом (эта часть имени, для упрощения работы с программой, является стандартной и имеет вид С:\ТР7\WorkPas\Dat\);

  • индивидуальная часть имени (строка не более пяти символов, запрашиваемая у пользователя);

  • температура на момент съёма данных, записываемых в файл (строка из трёх символов);

  • расширение файла в виде .TXT.

В процессе работы процедуры факт создания файла отображается на экране в виде надписи.

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

Процедура mp

начало

Ввод пользователем установочных значений параметров процесса

Пересчёт введённых значений температуры в сопротивление

Предустановка генератора

Предустановка вольтметра

Опрос вольтметра

выход

Съём результатов

Запись результатов в файл

Листинг процедуры:

procedure mp;

begin

p1(mas[2]);

p:=dan(4,'Задайте начальную температуру (K):');

val(p,T1,code);

p:=dan(5,'Задайте конечную температуру (K):');

val(p,T2,code);

p:=dan(6,'Задайте шаг измерения температуры (K):');

val(p,T3,code);

p:=dan(7,'Задайте шаг съема данных с осциллографа:');

val(p,st,code);

f0:=dan(8,'Введите имя файла (не более пяти символов):');

textbackground(black);

textcolor(15+blink);

gotoxy(20,11);write('Охладите пластину до начальной температуры');

gotoxy(20,12);write(' и нажмите "ENTER" для продолжения');

textcolor(lightgray);

readkey;

gotoxy(1,11);clreol;

gotoxy(1,12);clreol;

wn(yellow+128,'ВНИМАНИЕ !!! ИДЕТ ПРОЦЕСС',0);

window(xr-6,yr+7,80,20);

textcolor(15);

r1:=(t1-46.76)/17.073;r2:=(t2-46.76)/17.073;r3:=t3/17.073;

InterfaceClear;

{Предустановка генератора Г5-75}

Listener(10);

SendIt(ResG); {сброс}

SendIt(ZpG); {внешний запуск}

Unlisten;

{Предустановка V7-34}

Listener(20);

SendIt(FV); {Програмный идентификатор рода работ}

SendIt(ResV); {Программирование R}

SendIt(RV); {Прог.идент.предела и номера теста}

SendIt(AvpV); {автоматический выбор предела}

SendIt(TV); {програмный идентификатор "запуск"}

SendIt(ToV); {Периодический запуск}

SendIt(EV); {идентификатор конца программы}

Unlisten;

{Опрос В7-34}

Rn:= R1;

Repeat

tempr;

Meas;

Rn:= Rn+R3;

LocalMode;

Until Rn>R2;

Localmode;

cl_w(0);

window(1,1,80,20);

wn(15,' ПРОЦЕСС ЗАВЕРШЕН ',0);

readkey;

end;

Это главная процедура, отвечающая за пункт меню «Полный процесс». В начале процедуры организован диалог с пользователем. Ввод параметров осуществляется последовательно с клавиатуры. Значения температур и шага изменения должны быть целыми числами (температура в Кельвинах). Далее процедура выполняет программирование генератора и вольтметра и начинает циклический опрос вольтметра до тех пор пока температура пластины не станет равной температуре начала процесса. После того как будет достигнута эта температура, начинается периодический съём данных с осциллографа. Период определяется параметром «шаг измерения температуры». За съем данных с осциллографа и запись результатов в файл отвечает процедура Meas, описанная выше. Процесс заканчивается после того,как будет достигнута конечная температура.

П

начало

роцедура mp1

Ввод пользователем начальных установок процесса

Съём данных с осциллографа и запись их в файл

выход

procedure mp1;

begin

Rez:=-1;

p1(mas[3]);

p:=dan(7,'Задайте шаг съема данных с осциллографа:');

val(p,st,code);

f0:=dan(8,'Введите имя файла (не более пяти символов):');

wn(15,' ',6);

meas;

wn(15,'ПРОЦЕСС ЗАВЕРШЕН',0);

readkey;

end;

Эта процедура осуществляет одноразовый съём данных с осциллографа. Основной её частью является процедура Meas.

Соседние файлы в папке DIPLOM99