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

ЖАНРЫ

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

Программа сбора данных (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.

Поделиться с друзьями: