Главная Компьютер [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.0009 |