Читать «Как превратить персональный компьютер в измерительный комплекс» онлайн - страница 41

Патрик Гёлль

Очевидно, каждую из программ надо объединить с экранным драйвером 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

Осциллограф

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