Как превратить персональный компьютер в измерительный комплекс | страница 40



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


program maxim.8;

uses crt;

var n,f,e: byte;

b,g: integer;

d: real;

procedure init;

begin

b:=$3F8; n:=8;

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]:=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 then d:=d+exp((n-1-f)*ln(2))

end;

d: = (5*d)/(exp((n)*ln(2)) -1);

port[b+4]:=1;

end;

procedure affiche;

begin

acquisition;

d: = (int(100*d))/100;

writeln(d);

delay(500);

end;

begin

clrscr;

init;

for g:=1 to 20 do

begin

affiche;

end;

end.

(* COPYRIGHT 1997 Patrick GUEULLE *)


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


10 REM — 8BITS —

20 KEY OFF: CLS

30 B=&H3F8: REM COM1:

40 N=8: 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

110 FOR F=0 TO N-1

120 OUT B+4,2

>… В OCR-файле отсутствуют стр. 80, 81…


b:=$3F8; n:=10;

port[b+4]:=1;

delay(100);

port[b+3]:=64;

delay(500);

end;

procedure acquisition;

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-1-f)*ln(2));

end;

d:=(5*d)/(exp((n)*ln(2))-1);

end;

procedure affiche;

begin

acquisition;

d:=(int(100*d))/100;

writeln(d);

delay(500);

end;

begin

clrscr;

init;

for g:=1 to 20 do

begin

affiche;

end;

end.

(* COPYRIGHT 1997 Patrick GUEULLE *)


Устройство на базе МАХ 1243 требует особого драйвера MAXIM10.BAS и также предназначено для работы с последовательным портом СОМ1 (3F8h).


10 REM — MAXIM10 —

20 KEY OFF: CLS

30 B=&H3F8: REM COM1:

40 N=10: 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-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-1-F)

160 NEXT F

170 D=5*D/(2^N-1)

180 OUT B+4,1: RETURN

190 REM (c) 1997 Patrick GUEULLE


Его версия на языке TurboPASCAL называется MAXIM 10.PAS.


program dixbits;

uses crt;

var n,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 acquisition;

begin

port[b+4]:=0; d:=0;

for f:=0 to n-1 do