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

[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]

Разработана также версия на языке TurboPASCAL, которая пригодится, если нужна более высокая частота дискретизации.

Исходный текст ADC10.PAS представляет собой не просто драйвер. В качестве примера он содержит небольшую прикладную программу вывода на экран результатов двадцати последовательных измерений, проводимых с интервалом в 500 мсек.

program adclO;

uses crt;

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

procedure init ,-

begin

b:=$378; n:=8; port[b]:=2; delay(100); port[b]:=254,• delay(500); end;

procedure acquisition,-begin

port[b]:=252; d:=0; for f :=0 ton-1 do begin

delay(2);port[b]:=253; e:=port[b+l] and 128; port[b]:=252;

if e=0 thend:=d+exp{ (n-l-f) *ln(2)); end;

d:=(5*d)/(exp((n)*ln(2))-l); port[b]:=2;

end;

procedure af f iche; 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 *)



Устройство на базе МАХ 1243 также требует особого драйвера, версия которого на языке BASIC называется MAXIMS.BAS. Он определяет 8-разрядный режим работы для данного компонента, вообще-то представляющего собой 10-разрядное устройство.

10 REM----MAXIMS----

20 KEYOFF:CLS

30 B=&H3F8:REMC0M1:

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

50 OUT В+4 ,1

60 FOR Т=0 TO 100 :NEXT T

70OUTB+3,64

80 FOR T=0 TO 500 :NEXT T

90 GOTO 200

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

105OUTB+4,2:OUTB+4,0

110 FORF=OTON-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

Шестнадцатеричная величина 3F8 в строке 30 предполагает, что устройство подключено к последовательному порту СОМ1. Чтобы иметь возможность использовать COM2 вместо СОМ1, надо заменить эту величину на 2F8, а при использовании COM3 или COM4 рекомендуется предварительно проверить установки BIOS по экрану настройки SETUP, выводимому на дисплей при включении ПК.

Версия на языке TurboPASCAL называется MAXIM8.PAS и также включает небольшую прикладную часть, выводящую на экран результаты двадцати измерений.

program maxim8 ;

uses crt ;

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

procedure init;

begin

b:=$3F8; n:=8; port[b+4]:=1; delay(lOO); port[b+3] :-f..l;



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;

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 thend:=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{100*d))/100;

writeln(d);

delay(500);

end;

begin

clrscr;

init;

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

(* COPYRIGHT 1997 Patric) GUEULLE *)

Драйвер на языке BASIC, предназначенный для устройств на базе TLC 549 (рис. 4.1 и 4.13), называется 8BITS.BAS. Он также предназначен для работы с последовательным портом СОМ1 (3F8h).

10 REM----8BITS----

20 KEYOFFrCLS

30 B=&H3F8:REMC0M1:

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

50 OUT В+4,1

60 FORT=0 TO 100:NEXTT

70OUTB+3,64

80 FOR T=0 TO 500 :NEXT T

90 GOTO 200

100 OUT B+4, 0:D=0:REM ACQUISITION 110 FOR F=0 TON-1 120 OUT B+4, 2



[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.0016