Драйверы для 12-разрядных АЦП.
Схемы | Программы | Библиотека | Все для сотового | Компьютеры | Поиск |
Чат | Форум | Ссылки | Рефераты | Гостевая |
На сервере www.dmk.ru содержатся драйверы для четырех 12-разрядных АЦП: • АЦП ADC 12 компании PICO Technology; • версия АЦП на базе LTC 1286 или ADS 1286 (рис. 4.1, 4.3); • версия АЦП на базе МАХ 1241 (рис. 4.6); • версия АЦП на базе LTC 1286 или ADS 1286 (рис. 4.13, 4.14). Так как АЦП ADC 12 собран на базе 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,l 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-l 120 OUT B,254 130 E=INP(B+1) AND 128 140 OUT B,2S2 150 IF E=0 THEN D=D+2^(N-l-F) 160 NEXT F 170 D=5*D/(2^N-1) 180 OUT B,253:RETURN 190 REM (c)1997 Patrick GUEULLE
program add 2; 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; 1 delay(500); end; procedure acquisition; begin port[b]:=0; d:=0; port[b]:=254;port[b]:=252; portfb]:=254;port[b]:=252; for f:=0 to n-l 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))-l); port[b]:=253; end; procedure affiche; end; procedure affiche; begin acquisition; d:=(int(100*d))/100; writeln(d); delay (500); end; begin clrscr; in it; for g:=l to 20 do begin affiche; end; end. (* COPYRIGHT 1997 Patrick GUEULLE *) Описанные в книге устройства, работающие через последовательный порт (рис. 4.3 и 4.6), не имеют такого ограничения и могут наилучшим образом использовать точность высококачественных АЦП. Только версия с оптоизоляцией (рис. 4.13, 4.14) потребует определенной аккуратности, так как применение оптронов слегка ухудшает характеристики устройства в 12-разрядном режиме. Из сказанного можно сделать вывод, что с АЦП LTC 1286 или ADS 1286 будут работать программы 12BITS.BAS и 12BITS.PAS при условии, что для связи с ПК используется последовательный порт СОМ1 (адрес 3F8h в строке 30). 10 REM----12BITS---- 20 KEY OFF:CLS 30 B=&H3F8:REM COM1: 40 N=12:REM число разрядов 50 OUT B+4,1 60 FOR T=0 TO 100:MEXT T 7 0 OUT B+3,64 80 FOR T=0 TO 500:NEXT T 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 TO N-l 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-1~F) 160 NEXT F 170 D=5*D/(2^N-1) 180 OUT B+4,1:RETURN 190 REM (c)1997 Patrick GUEULLE
program douzebits; uses crt; var n, f,e:byte; b,g:integer; d:real; d:real; procedure init; begin b:=$3F8; n:=12; port[b+4]:=1; delay(100); 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]t=2;port[b+4]:=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; for f:=0 to n-l 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 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 Patrick GUEOLLE *). С АЦП MAX 1241 (рис. 4.6) будут работать программы MAXIM12.BAS на языке BASIC и MAXIM12.PAS на языке TurboPASCAL. '10 REM----MAXIM12---- 20 KEY OFF: CLS 30 B=&H3F8:REM COM1: 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=0 TO 500:NEXT T 90 GOTO 200 . 100 OUT B+4,0:D=0:REM ACQUISITION 105 OUT B+4,2:OUT B+4,0 110 FOR F=0 TO N-l . 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^A(N-1-F) 160-NEXT F 170 D=5*D/(2^N-1) 180 OUT B+4,1:RETURN 190 REM (c)1997 Patrick GUEULLE
program maximl2; uses crt; var n,f,e:byte; b,g:integer; d:real; procedure init; begin b:=$3F8; n:=12; port[b+4]:=1; delay(100); porttb+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 to n-l do begin port [b+4]:=2; e:=pprt[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 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 Patrick GUEULLE *)
|
--------------------------------------------------------------------------------------------------------------------------------------------