Шрифт:
Рис 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 параллельного порта, игровой порт и т. п.).