Выбери любимый жанр

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


Изменить размер шрифта:

18

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

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

затем

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

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

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

Как превратить персональный компьютер в измерительный комплекс - _59.jpg

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

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

Как превратить персональный компьютер в измерительный комплекс - _60.jpg

Рис 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.

Как превратить персональный компьютер в измерительный комплекс - _61.jpg

Рис 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 развертка

260 NEXT G

270 END

300 REM — VGA —

310 SCREEN 9

320 KEY OFF: CLS

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

340 TOR Y=0 TO 349 STEP 35

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

360 NEXT Y

370 FOR X=0 TO 639 STEP 32

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

390 NEXT X

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

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

415 X=0: RETURN

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

502 PSET(X,V)

505 V=Y

510 LINE-(X,V),12

520 X=X+1

530 RETURN

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

602 PSET(X,W)

605 W=Y

610 LINE-(X,W),14

630 RETURN

1000 REM 12BITS

1010 KEY OFF: CLS

1020 C=&H2F8: REM COM2:

1030 M=12: REM число разрядов

1040 OUT C+4,1

1050 FOR T=0 TO 100:NEXT T

1060 OUT C+3,64

1070 FOR T=0 TO 500:NEXT T

1080 RETURN

1090 OUT C+4,0: Q=0: REM ACQUISITION

1100 OUT C+4,2: OUT C+4,0

1110 OUT C+4,2: OUT C+4,0

1120 OUT C+4,2: OUT C+4,0

1130 FOR F=0 TO M-1

1140 OUT C+4,2

1150 E=INP(C+6) AND 16

1160 OUT C+4,0

1170 IF E=16 THEN Q=Q+2^(M-1-F)

1180 NEXT F

1190 Q=5*Q/(2^M-1)

1200 OUT C+4,1: RETURN

1210 REM (c) 1997 Patrick GUEULLE

18
Перейти на страницу:
Мир литературы