Главная  Компьютер 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [ 28 ] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46]

4.14) потребует определенной аккуратности, так как использование оптронов слегка ухудшает характеристики устройства в 12-разрядном режиме.

Из сказанного можно сделать вывод, что с АЦП LTC 1286 или ADS 1286 будут работать программы 12-BITS.BAS и 12-BITS.PAS, с учетом того, что для связи с ПК используется последовательный порт СОМ1 (адрес 3F8h в строке 30).

10 REM----12BITS----

20 KEYOFF:CLS

30B=&H3F8:REMCOM1:

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

50 OUT B+4 ,1

60 FOR T=0 TO 100 :NEXT T 70 OUT B+3,64 80 FOR T=0TO 500:NEXTT 90 GOTO 200

100 OUT B+4, 0: D=0: REM ACQUISITION

102 OUT B+4,2:OUT B+4,0

103 OUT B+4,2 :OUT B+4,0

104 OUT B+4,2 :OUT B+4, 0 110 FOR F=0 TON-1

120 OUT B+4,2

130 E=INP(B+6) AND 16

140 OUT B+4, 0

150 IF E=16 THEN D=D+2 (N-l-F)

160 NEXT F

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

180 OUT B+4,1:RETURN

190 REM (c)1997 Patrick GUEULLE

program douzebits;

uses crt;

var n, f .eibyte.-b.giinteger.-dtreal;

procedure init;

begin

b:=$3F8; n:=12; port(b+4]:=1; delay(lOO); port[b+3]:=64; delay(500); end;

procedure accjuisition; begin

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

port[b+4]:=2;port[b+4]:=2;

port[b+4]:=2;port[b+4]:=0;



port[b+4]:=2;port[b+4]:=2; port(b+4):=2;port[b+4]:=0; port[b+41:=2,-port[b+4]:=2; port[b+4]:=2;port[b+4]:=0; for f :=0 ton-1 do begin

port[b+4]:=2;

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

port[b+4]:=0;

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

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

port [b+4] :=1;

end;

procedure affiche; begin

accjuisition;

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

writeln(d);

delay(500);

end;

begin

clrscr;

init;

for g:=l to 20 do begin affiche; end; end.

(* COPYRIGHT 1997 Patrick GUEULLE *)

С АЦП MAX 1241 (рис. 4.6) будут работать программы MAXIM12.BAS на языке BASIC и MAXIM12.PAS на языке TurboPASCAL.

10 REM----MAXIM12----

20 KEYOFF:CLS

30 B=&H3F8:REMC0M1:

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

50 OUT В+4,1

6 О FOR Т= О TO 10 О : NEXT Т

70ОиТВ+3,64

80 FOR Т=0 ТО 500.-NEXT Т

90 GOTO 200

100 OUT В+4, О: D=0: REM ACQUISITION

105 OUT В+4,2:OUT В+4, О

110 FOR F=OTON-1

120 OUT B+4,2

130 E=INP(B+6) AND 16

140 OUT B+4,0



150 IF Е=16 THEN D=D+2 (N-l-F)

160 NEXT F

nOD=5*D/(2"N-l)

180 OUT B+4,1:RETURN

190 REM (c) 1997 Patric)?GUEULLE

program maximl2;

uses crt ;

varn,f ,e:byte; b,g:integer,• d:real;

procedure init;

begin

b:=$3F8; n:=12; port[b+4]:=1; delay(lOO); port[b+3]:=64; delay(500); end;

procedure acquisition; begin

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

port[b+4]:=2;port[b+4]:=2;

port[b+4]:=2;port[b+4]:=0;

for f :=0 ton-1 do

begin

port[b+4]:=2; e:=port[b+6] and 16; port[b+4):=0;

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

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

port[b+4]:=1;

end;

procedure aff iche; begin

acquisition;

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

writeln(d);

delay(500);

end;

begin

clrscr;

init;

for g:=l to 20 do begin affiche; end; end.

(* COPYRIGHT 1997 Patric)? GUEULLE *)



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [ 28 ] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46]

0.0007