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