Чтение онлайн

на главную - закладки

Жанры

Как превратить персональный компьютер в измерительный комплекс
Шрифт:

program adc10;

uses crt;

var n,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 to n-1 do

begin

delay(2); port[b]:=253;

e:=port[b+1]: and 128;

port[b]:=252;

if e=0 then d:=d+exp((n-1-f) *ln(2));

end;

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

port[b]:=2;

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 также требует особого драйвера, версия которого на языке BASIC называется MAXIM8.BAS. Он определяет 8-разрядный режим работы для данного компонента, вообще-то представляющего собой 10-разрядное устройство.

10 REM — MAXIM8 —

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

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

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

Версия на языке 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

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 *)

Драйверы для 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).

Так как АЦП ADC12 собран на базе 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,1

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-1

120 OUT B,254

130 E=INP(B+1) AND 128

140 OUT B,252

150 IF E=0 THEN D=D+2^(N-1-F)

160 NEXT F

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

180 OUT B,253: RETURN

190 REM (c) 1997 Patrick GUEULLE

Поделиться:
Популярные книги

Идентификация

Уленгов Юрий
3. Гардемарин ее величества
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Идентификация

Господин следователь

Шалашов Евгений Васильевич
1. Господин следователь
Детективы:
исторические детективы
5.00
рейтинг книги
Господин следователь

Хозяйка дома в «Гиблых Пределах»

Нова Юлия
Любовные романы:
любовно-фантастические романы
5.75
рейтинг книги
Хозяйка дома в «Гиблых Пределах»

Купец III ранга

Вяч Павел
3. Купец
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Купец III ранга

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

Боги, пиво и дурак. Том 3

Горина Юлия Николаевна
3. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 3

Сломанная кукла

Рам Янка
5. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сломанная кукла

Жена на четверых

Кожина Ксения
Любовные романы:
любовно-фантастические романы
эро литература
5.60
рейтинг книги
Жена на четверых

Мастер Разума

Кронос Александр
1. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
6.20
рейтинг книги
Мастер Разума

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Плеяда

Суконкин Алексей
Проза:
военная проза
русская классическая проза
5.00
рейтинг книги
Плеяда

Неудержимый. Книга VIII

Боярский Андрей
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
6.00
рейтинг книги
Неудержимый. Книга VIII