KnigaRead.com/
KnigaRead.com » Научные и научно-популярные книги » Радиотехника » Патрик Гёлль - Как превратить персональный компьютер в измерительный комплекс

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Патрик Гёлль, "Как превратить персональный компьютер в измерительный комплекс" бесплатно, без регистрации.
Перейти на страницу:

Программа сбора данных (FICHIER.BAS), которую, конечно же, надо дополнить драйвером используемого АЦП при помощи команды MERGE, исключительно проста.


200 REM — FICHIER —

210 GOSUB 100

220 OPEN "dat.dat" FOR OUTPUT AS #1

230 PRINT "Идут измерения… "

240 FOR G=0 TO 639

250 GOSUB 100

260 PRINT# 1, D

270 FOR T=0 TO 2000: NEXT T

280 NEXT G: CLOSE# 1

290 REM (c) 1997 Patrick GUEULLE


В оригинальной версии эта программа создает файл DAT.DAT, содержащий 640 выборок, которые производятся с частотой дискретизации, определяемой в строке 270 (простая задержка). Конечно, число 2000 используется лишь при первых попытках, а потом надо будет подобрать эту величину в соответствии со скоростью используемого ПК и конкретной задачей.

В самых сложных случаях можно, по примеру SECONDE.BAS и MINUTE.BAS, использовать переменную TIME$ для улучшения точности и значительного снижения частоты дискретизации.

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


Графопостроитель

Вывод информации на экран осуществляет программа CGAVISU.BAS или VGAVISU.BAS. Вторая из них применяется, если желательно воспользоваться большим разрешением, соответствующим экранам VGA.


500 REM — CGAVISU —

510 OPEN "dat.dat" FOR INPUT AS #1

520 INPUT#1,Y: Y=199-INT(Y*199/5)

530 PSET(0,Y)

540 FOR X=1 TO 639

550 INPUT#1,Y: Y=199-INT(Y*199/5)

560 LINE — (X, Y)

570 NEXT X

580 CLOSE

590 REM (c) 1997 Patrick GUEULLE


500 REM — VGAVISU —

510 OPEN "dat.dat" FOR INPUT AS #1

520 INPUT#1,Y: Y=349-INT(Y*349/5)

530 PSET(0,Y)

540 FOR X=1 TO 639

550 INPUT#1,Y: Y=349-INT(Y*349/5)

560 LINE — (X, Y)

570 NEXT X

580 CLOSE

590 REM (c) 1997 Patrick GUEULLE


Очевидно, каждую из программ надо объединить с экранным драйвером CGA.BAS или VGA.BAS, соответствующим используемому оборудованию.


300 REM — CGA —

310 SCREEN 2

320 KEY OFF: CLS

330 LINE(0,0)-(0,199)

340 FOR Y=0 TO 199 STEP 20

350 LINE(0,Y)-(639,Y),&HCCCC

360 NEXT Y

370 FOR X=0 TO 639 STEP 32

380 LINE(X,0)-(X,199),&HCCCC

390 NEXT X

400 LINE(639,0)-(639,199)

410 LINE(0,199)-(639,199),&HCCCC

420 REM (c) 1997 Patrick GUEULLE


300 REM VGA

310 SCREEN 9

320 KEY OFF: CLS

330 LINE(0,0)-(0,349)

340 FOR Y=0 TO 349 STEP 35

350 LINE(0,Y)-(639,Y),&HCCCC

360 NEXT Y

370 FOR X=0 TO 639 STEP 32

380 LINE(X,0)-(X,349),&HCCCC

390 NEXT X

400 LINE(639,0)-(639,349)

410 LINE(0,349)-(639,349),&HCCCC

420 REM (c) 1997 Patrick GUEULLE


Это объединение можно сделать следующим образом:

LOAD "CGA" (загрузка драйвера);

затем

MERGE "CGAVISU" (добавление программы вывода на экран).

Полученная программа теперь может быть сохранена под каким-либо именем при помощи обычной команды SAVE.

На рис. 5.11 показан результат вывода на бумагу с использованием буфера обмена Windows, кривой разряда конденсатора емкостью 4,7 мкФ через входное сопротивление АЦП. Эта кривая была получена на экране CGA (320x200 точек).



Рис 5.11. Результат, полученный в режиме CGA


Рис. 5.12 воспроизводит ту же запись, пересчитанную для вывода на экран VGA.



Рис 5.12. Результат, полученный в режиме VGA


Обеспечение точной временной развертки

Для приложений, требующих точной регистрации параметра «время», можно использовать программу

TIME.BAS, записывающую в файл DAT.DAT значение переменной TIMES вместе с измеренной величиной напряжения.


200 REM — TIME —

210 GOSUB 100

220 OPEN "dat.dat" FOR OUTPUT AS #1

230 PRINT "Идут измерения "

240 FOR G=0 ТО 639

250 GOSUB 100

260 PRINT#1,D,TIME$

270 FOR T=0 TO 2000: NEXT T

300 REM (c) 1997 Patrick GUEULLE

Понятно, что для полной обработки такого файла потребуются специальные программы. Можно использовать как большие коммерческие пакеты, статистические или графические, так и простые программы TCGA.BAS и ТVGA.ВAS.


500 REM — TCGA —

510 OPEN "dat.dat" FOR INPUT AS #1

520 INPUT#1,Y: Y=199-INT(Y*199/5)

530 INPUT#1,S$: PSET(0, Y)

540 FOR X=1 TO 639

550 INPUT#1,Y: Y=199-INT(Y*199/5)

560 INPUT#1,T$: LINE-(X,Y)

570 NEXT X: CLOSE #1

580 LOCATE 1,1: PRINT S$

590 LOCATE 1,73: PRINT S$

600 REM (C) 1997 Patrick GUEULLE


500 REM — TVGA —

510 OPEN "dat.dat" FOR INPUT AS #1

520 INPUT#1,Y: Y=349-INT(Y*349/5)

530 INPUT#1,S$: PSET(C,Y)

540 FOR X=1 TO 639

550 INPUT#1,Y: Y=349-INT(Y*349/5)

560 INPUT# 1,T$: LINE-(X, Y)

570 NEXT X: CLOSE#1

580 LOCATE 1,1: PRINT S$

590 LOCATE 1,73: PRINT S$

600 REM (c) 1997 Patrick GUEULLE


Осциллограф

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

• драйвер АЦП;

• драйвер экрана;

• прикладную программу.

Первые два модуля уже известны, а в качестве третьего может быть использована либо программа CDIRECT.BAS (с экраном CGA), либо VDIRECT.BAS (с экраном VGA).


85 GOSUB 300

200 REM — CDIRECT —

210 GOSUB 100: PSET(0,0)

220 FOR G=1 TO 639

230 GOSUB 100

240 Y=D: GOSUB 500

250 FOR T=0 TO 2000: NEXT T: REM развертка

260 NEXT G

270 END

415 X=0: RETURN

500 Y=199-INT(Y*199/5)

510 LINE-(X, Y)

520 X=X+1

530 RETURN

540 REM (c) 1997 Patrick GUEULLE


85 GOSUB 300

200 REM — VDIRECT —

210 GOSUB 100: PSET(0,0)

220 FOR G=1 TO 639

230 GOSUB 100

240 Y=D: GOSUB 500

250 FOR T=0 TO 2000: NEXT T: REM развертка

260 NEXT G

270 END

415 X=0: RETURN

500 Y=349-INT(Y*349/5)

510 LINE-(X, Y)

520 X=X+1

530 RETURN

540 REM (c) 1997 Patrick GUEULLE


Потребуются следующие команды:

LOAD "MAXIM10" (загрузка драйвера для МАХ 1243);

MERGE "VGA" (добавление драйвера для экрана VGA);

VERGE "VDIRECT" (добавление модуля осциллографа VGA).

На рис. 5.13 приведена полученная таким образом осциллограмма синусоидального сигнала с амплитудой 1 В и частотой 4 Гц на выходе функционального генератора, выполненного на базе широко распространенной микросхемы МАХ 038. В данном случае 10-разрядный АЦП работал с ПК модели 486/133 МГц с экраном VGA.



Рис 5.13. Осциллогромма, полученная в режиме VGA


Для того чтобы приспособить осциллограф к той или иной практической задаче, в программу достаточно внести минимальные изменения. Для получения непрерывной развертки без очистки экрана (режим длительного послесвечения) следует исправить строку 270:

270 Х=0: GOTO 220

Для получения того же результата, но с очисткой экрана на каждом * обратном ходе» развертки (режим короткого послесвечения), надо записать:

270 CLS: GOTO 85

Для получения режима «ждущей синхронизации» следует добавить только одну строку:

215 IF D=0 THEN 210

Эта команда позволяет дождаться положительного напряжения на входе АЦП для запуска развертки. Конечно, можно выбрать и любую другую отличную от нуля величину в диапазоне от 0 до +5 В, а также использовать условные операторы «больше, чем» или «меньше, чем».

Можно также предусмотреть и вход внешней развертки, использовав либо второй АЦП, либо один из цифровых входов (линии /АСК или BUSY параллельного порта, игровой порт и т. п.).


Возможности многоканальных измерений

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

Самый распространенный случай — это создание двухлучевого виртуального осциллографа, но можно принять в расчет и задачи, требующие режима работы «Х-Y», а также просто запись в файл более или менее взаимосвязанных последовательностей данных.

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


5 REM — BICOURBE —

10 REM — MAXIM12 —

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 FOR T=0 TO 500: NEXT T

84 GOSUB 1000

85 GOSUB 300

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

200 REM — VDIRECT —

210 GOSUB 100: GOSUB 1090

220 FOR G=1 TO 639

230 GOSUB 100

240 Y=D: GOSUB 500

241 GOSUB 1090

242 Y=Q: GOSUB 600

250 FOR T=0 TO 2000: NEXT T: REM развертка

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*