![]() |
Главная Компьютер [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] 105 OUT В+4,2 :ОиТ В+4 ,0 110 FOR F=0 ТО N-1 120 OUT В+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 Его версия на языке TurboPASCAL называется MAXIMIO.PAS. program dixbits; uses crt; varn.f ,e:bYte; b,g:integer; d:real; procedure init; begin b:=$3F8; n:=10; port[b+4]:=1; delay(100); port[b+3]:=64; delay(500); end; procedure accjuisition; begin port[b+4] :=0; d:=0; for f :=0 to n-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); end; procedure affiche; begin acquisition; d:=(int(100*d))/100; writeln(d); delay(500); end; begin clrscr; init; for g:=l 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). Так как АЦП ADC 12 собран на базе LTC 1292, он требует тактовой частоты не менее 100 кГц. В силу этого обстоятельства драйверы ADC12.BAS и даже ADC12.PAS следует с большой осторожностью использовать на старых и медленных ПК, поскольку в таком случае не всегда удается добиться результатов, которые может обеспечить АЦП ADC 10 при тех же условиях. Самая нежелательная ситуация возникает при исполнении программы в окне Windows, что еще больше замедляет работу по сравнению с выполнением непосредственно в DOS. Иначе говоря, АЦП ADC 12 будет работать с полной отдачей только со своим программным обеспечением PICOSCOPE и PICOLOG, причем под DOS лучше, чем под Windows. 10 REM----ADC12---- 20 KEY OFF:CLS 30 B=&H378:REMLPT1: 40 N=12 :REM число разрядов 50 OUTB.l 60 FORT=0TO100:NEXTT 70 OUT B,254 80 FOR T=0 TO 500 :NEXT T 90 GOTO 200 100 OUT B, 252 :D=0 :REM ACQUISITION 105OUTB,254:OUTB,252 106 OUT B, 254 :OUT B,252 110 FOR F=0 TON-1 120 OUT B,254 130E=INP(B+1) AND 128 140 OUT B,252 150 IF E=0 THEN D=D+2" (N-l-F) 160 NEXT F 170D=5*D/(2N-1) 180OUTB,253:RETURN 190 REM (c)1997 Patrick GUEULLE program adcl2; uses crt ; var n, f .eibyte.-b.giinteger.-direal; procedure init; begin b:=$378; n:=12; port[b]:=l; 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 ton-1 do begin port[b]:=254; e:=port[b+l] and 128; port[b]:=252; if e=0 then d:=d+exp{ (n-l-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:=l to 20 do begin affiche; end; end. {* COPYRIGHT 1997 Patrick GUEULLE *) Описанные в книге устройства, работающие через последовательный порт (рис. 4.3 и 4.6), не имеют такого ограничения и могут наилучшим образом использовать точность примененных в них высококачественных АЦП. Только версия с оптоизоляцией (рис. 4.13, [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.001 |