Как превратить персональный компьютер в измерительный комплекс | страница 41



begin

port[b+4]:=2;

e:=port[b+6] and 16;

port[b+4]:=0;

if e=16 then d:=d+exp((n-1-f)*ln(2));

end;

d:=(5*d)/(exp((n)*ln(2))-1);

end;

procedure affiche;

begin

acquisition;

d:=(int(100*d))/100;

writeln(d);

delay(500);

end;

begin

clrscr;

init;

for g:=1 to 20 do

begin

affiche;

end;

end.

(* COPYRIGHT 1997 Patrick GUEULLE *)


Драйверы для 12-разрядных АЦП

На сервере www.dmk.ru содержатся драйверы для четырех 12-разрядных АЦП:

• АЦП ADC 12 компании PICO Technology;

• версия АЦП на базе LTC 1286 или ADS1286 (рис. 4.1,4.3);

• версия АЦП на базе МАХ 1241 (рис. 4.6);

• версия АЦП на базе LTC 1286 или ADS1286 (рис. 4.13,4.14).

Так как АЦП ADC12 собран на базе LTC 1292, он требует тактовой частоты не менее 100 кГц. В силу этого обстоятельства драйверы ADC12.BAS и даже ADC12.PAS следует с большой осторожностью использовать на старых и медленных ПК, поскольку в таком случае не всегда удается добиться результатов, которые может обеспечить АЦП ADC 10 при тех же условиях. Самая нежелательная ситуация возникает при исполнении программы в окне Windows, что еще больше замедляет работу по сравнению с выполнением непосредственно в DOS.

Иначе говоря, АЦП ADC 12 будет работать с полной отдачей только со своим программным обеспечением PICOSCOPE и PICO LOG, причем под DOS лучше, чем под Windows.


10 REM — ADC12 —

20 KEY OFF: CLS

30 B=&H378: REM LPT1:

40 N=12: REM число разрядов

50 OUT B,1

60 FOR T=0 TO 100: NEXT T

70 OUT B,254

80 FOR T=0 TO 500: NEXT T

90 GOTO 200

100 OUT B,252: D=0: REM ACQUISITION

105 OUT B,254: OUT B,252

106 OUT B,254: OUT B,252

110 FOR F=0 TO N-1

120 OUT B,254

130 E=INP(B+1) AND 128

140 OUT B,252

150 IF E=0 THEN D=D+2^(N-1-F)

160 NEXT F

170 D=5*D/(2^N-1)

180 OUT B,253: RETURN

190 REM (c) 1997 Patrick GUEULLE


program adc12;

uses crt;

var n,f,e: byte;

b,g: integer;

d: real;

procedure init;

begin

b:=$378; n:=12;

port[b]:=1;

delay(100);

port[b]:=254;

delay(500);

end;

procedure acquisition;

begin

port[b]:=0; d:=0;

port[b]:=254; port[b]:=252;

port[b]:=254; port[b]:=252;

for f:=0 to n-1 do

begin

port[b]:=254;

e:=port[b+1] and 128;

port[b];=252;

if e=0 then d;=d+exp((n-1-f)*ln(2));

end;

d;=(5*d)/(exp((n)*ln(2))-1);

port[b]:=253;

end;

procedure affiche;

begin

acquisition;

d:=(int(100*d))/100;

writeln(d);

delay(500);

end;

begin

clrscr;

init;

for g:=1 to 20 do

begin

affiche;

end;

end.

(* COPYRIGHT 1997 Patrick GUEULLE *)


Описанные в книге устройства, работающие через последовательный порт (рис. 4.3 и 4.6), не имеют такого ограничения и могут наилучшим образом использовать точность примененных в них высококачественных АЦП. Только версия с оптоизоляцией (рис. 4.13, 4.14) потребует определенной аккуратности, так как использование оптронов слегка ухудшает характеристики устройства в 12-разрядном режиме.