Читать «Как превратить персональный компьютер в измерительный комплекс» онлайн - страница 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.
Рис. 5.12 воспроизводит ту же запись, пересчитанную для вывода на экран VGA.
Рис 5.12.
Обеспечение точной временной развертки
Для приложений, требующих точной регистрации параметра «время», можно использовать программу
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
Осциллограф
Во многих ситуациях бывает нужно наблюдать формирование кривой в реальном масштабе времени прямо на экране ПК. При этом должна быть предусмотрена возможность распечатки изображения на принтере после вывода на экран или даже в процессе вывода, при включении опции «печать экрана». Такой результат очень просто получить, совместив три программы: