Как превратить персональный компьютер в измерительный комплекс - Патрик Гёлль 7 стр.


Помимо настройки параметров печати со всеми опциями по форматам, ориентации и разрешению, процедура инсталляции позволяет определить тип применяемого АЦП и порт, к которому он будет подключен. Понятно, что если АЦП подключен к параллельному порту, то последний уже нельзя использовать для подключения принтера. Есть два варианта решения этой проблемы: зарезервировать за АЦП второй принтерный порт (LPT2) или выводить данные для печати в файл, создаваемый на диске. Потом этот файл можно вывести на принтер. При этом надо учитывать, что объем файла будет очень велик, — гораздо больше, чем объем файла с результатами измерений.

Перед тем как перейти к практическому использованию виртуального регистратора, будет полезно с помощью опции вывода числовых величин («показать напряжение АЦП») проверить правильность измерения напряжения АЦП в диапазоне от 0 до 5 В, подаваемого на его вход. Если возникают какие-либо ошибки, следует убедиться в правильности всех соединений, а также проверить, нет ли аппаратных конфликтов между ПК и АЦП (если они есть, то такие же конфликты появятся и при использовании программы PICOSCOPE).

В принципе подобные проблемы возникают только при использовании портативных ПК, в которых для снижения энергопотребления применены нестандартные решения в схеме порта.

Прежде чем начать сеанс измерений и приступить к обработке результатов при создании отчета, необходимо проделать множество операций. К счастью, необязательно каждый раз проделывать все эти операции с нуля, так как предусмотрена простая процедура для перезапуска любого проведенного ранее сеанса. Надо просто присвоить новое имя файлу, чтобы не повредить старый файл при вводе новых данных.

Пользователю рекомендуется заранее подготовить несколько так называемых калибровочных таблиц, соответствующих текущим задачам. Впоследствии таблицы можно будет использовать по мере надобности.

В табл. 5.1 приведены некоторые примеры. Они показывают, как записывать на бумаге во временном масштабе значение напряжения, изменяющегося от 0 до 5 В или же приведенного к этому диапазону внешним устройством нормирования входного сигнала.

Таблица 5.1. Пример калибровочной таблицы

www.dmk.ru содержатся драйверы для четырех 8-разрядных АЦП:

• АЦП АDС 10 компании PICO Technology;

• версия АЦП на базе TLC 549 (рис. 4.1, 4.3);

• версия АЦП на базе МАХ 1243 (рис. 4.6);

• версия АЦП на базе TLC 549 (рис. 4.13, 4.14).

Заметим, что хотя АЦП ADC 10 и собран на базе TLC 549, он требует особого драйвера, так как подключается к параллельному порту. Вполне логично, что версия драйвера для ADC 10 на языке BASIC называется ADC10.BAS.

10 REM — ADC 10 —

20 KEY OFF: CLS

30 B=&H378: REM LPT1:

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

50 OUT В, 2

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 получение данных

110 FOR F=0 TO N-1

120 OUT B,253

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

Назад Дальше