- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Как превратить персональный компьютер в измерительный комплекс - Патрик Гёлль
Шрифт:
Интервал:
Закладка:
150 IF E=0 THEN D=D+2^(N-1-F)
160 NEXT F
170 D=5*D/(2^N-1)
180 OUT B,2: RETURN
190 REM (c) 1997 Patrick GUEULLE
Шестнадцатеричная величина 378 в строке 30 предполагает, что ADC 10 подключен к параллельному порту LPT1. Чтобы подключить ADC 10 к порту LPT2 (если таковой имеется), надо заменить эту величину на 278 или на любую другую величину, соответствующую установкам BIOS используемого компьютера.
Разработана также версия на языке TurboPASCAL, которая пригодится, если нужна более высокая частота дискретизации.
Исходный текст ADC10.PAS представляет собой не просто драйвер. В качестве примера он содержит небольшую прикладную программу вывода на экран результатов двадцати последовательных измерений, проводимых с интервалом в 500 мсек.
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
program adc12;
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;
delay(500);
end;
procedure acquisition;
begin
port[b]:=0; d:=0;
port[b]:=254; port[b]:=252;
port[b]:=254; port[b]:=252;
for f:=0 to n-1 do
begin
port[b]:=254;
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)*ln(2))-1);
port[b]:=253;
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 *)
Описанные в книге устройства, работающие через последовательный порт (рис. 4.3 и 4.6), не имеют такого ограничения и могут наилучшим образом использовать точность примененных в них высококачественных АЦП. Только версия с оптоизоляцией (рис. 4.13, 4.14) потребует определенной аккуратности, так как использование оптронов слегка ухудшает характеристики устройства в 12-разрядном режиме.
Из сказанного можно сделать вывод, что с АЦП LTC 1286 или ADS 1286 будут работать программы 12-BITS.BAS и 12-BITS.PAS, c учетом того, что для связи с ПК используется последовательный порт СОМ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: NEXT T
70 OUT B+3,64
80 TOR 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-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
program douzebits;
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);
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;
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-1 do