Скачиваний:
13
Добавлен:
01.05.2014
Размер:
182.27 Кб
Скачать

7. Меры предосторожности при работе с устройством.

При работе с устройством входное измеряемое напряжение ни при каких условиях не должно выходить за пределы 15В. В случае необходимости на датчиках сигналов следует устанавливать ограничивающие элементы. Несоблюдение этого условия может вывести из строя входные цепи устройства.

8. Пример программы для работы с устройством.

program MD88t14;

USES Crt,Graph;

{вывод на экран в виде графика результатов 600 измерений по заданному каналу и с заданным коэффициентом усиления при программном запуске;

выход из программы по ESC, по любой другой клавише цикл измерений повторяется}

const

Base=$320; {базовый адрес MD88}

CSR=Base; {адрес регистра управления MD88}

DR=Base+2; {адрес регистра данных MD88}

label 1;

var

VCSR: word;{глобальная переменная, хранящая содержимое регистра CSR}

dat: array[1..600] of integer;

i,e,grdrv,grmode: integer;

kw: real;

s,ss: char;

ch,g,k: word;

st: string;

{******************************************************************}

Procedure MD88FIFORST; {процедура сброса FIFO}

begin

Portw[CSR]:=VCSR or $4000;

end ;{MD88FIFORST}

{*******************************************************************}

Function MD88PRSTS(ch,g:word):integer;

{функция получения результата измерения по каналу ch при коэффициенте усиления g; режим работы коммутатора каналов - 16 заземленных; режим запуска - программный}

begin

VCSR:= VCSR or ((ch shl 4)+(g shl 9));

Portw[CSR]:=VCSR+1;

while (Portw[CSR] and $1)=0 do;

MD88PRSTS:=integer((Portw[DR] and $FFF) shl 4) div 16;

end;{MD88PRSTS}

{********************************************************}

procedure MD88SET(ch,g,time:word);

{процедура подключения на вход MD88 сигнала с канала ch с коэф. усиления g, с задержкой после включения, равной time условных единиц;

режим работы коммутатора каналов - 16 заземленных}

var

tmp: integer;

begin

VCSR:= VCSR or ((ch shl 4)+(g shl 9));

Portw[CSR]:=VCSR;

for tmp:=0 to time do;{генерация временной задержки}

end;{MD88SET}

{*********************************************************}

function MD88GETT:integer;

{функция получения одного отсчета от MD88 при внешнем или таймерном запуске;

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

begin

while (Portw[CSR] and $1)=0 do;

MD88GETT:=integer((Portw[DR] and $FFF) shl 4) div 16;

end;{MD88GETT}

{**********************************************************}

Procedure MD88STIM(k:word);

{Процедура установки периода сигналов запуска АЦП от внутреннего таймера MD88.

ПЕРИОД[мкс]=(0.8+0.8*k)[мкс] Таймер начинает работать сразу после установки периода}

begin

VCSR:=VCSR and $FFF7;

Portw[CSR]:=VCSR;

Portw[DR]:=k;

VCSR:=VCSR or $2;

Portw[CSR]:=VCSR;

end {MD88STIM};

{=================================================================}

begin

VCSR:=0;

ClrScr;

GotoXY(1,1);

Write('Канал -> ');

Readln(ch);

GotoXY(1,2);

Write('Диапазон -> ');

Readln(g);

1: MD88FIFORST;

for i:=1 to 600 do dat[i]:=MD88PRSTS(ch,g);

e:=portw[CSR] and $4000; {чтение признака переполнения FIFO}

grdrv:=0;

InitGraph(grdrv,grmode,'');

SetColor(2);

Rectangle(40,20,GetMaxX,GetmaxY-20);

SetColor(15);

OutTextXY(40,8,'канал');

OutTextXY(88,8,Chr(48+ch));

SetColor(14);

OutTextXY(344,8,'выход ESC продолжение ЛЮБАЯ КЛАВИША');

SetColor(2);

SetLineStyle(DottedLn,0,NormWidth);

for i:=1 to 9 do Line(40,40+(i-1)*50,639,40+(i-1)*50);

SetColor(15);

OutTextXY(0,437,'-2000');

OutTextXY(0,337,'-1000');

OutTextXY(32,237,'0');

OutTextXY(8,137,'1000');

OutTextXY(8,37,'2000');

OutTextXY(37,470,'0');

OutTextXY(129,470,'100');

OutTextXY(229,470,'200');

OutTextXY(329,470,'300');

OutTextXY(429,470,'400');

OutTextXY(529,470,'500');

SetColor(Red);

If e<>0 then OutTextXY(460,32,'переполнение буфера')

else OutTextXY(460,32,' ');

SetColor(2);

for i:=1 to 5 do Line(140+(i-1)*100,20,140+(i-1)*100,459);

SetLineStyle(SolidLn,0,NormWidth);

for i:=1 to 600 do PutPixel(i+39,240-(dat[i] {div 10}),14);

repeat

until(KeyPressed);

if ReadKey<>Chr($1B) then goto 1;

CloseGraph;

end.

3

Соседние файлы в папке Курсовая работа