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

Патрик Гёлль

load "ADC10" (загрузка драйвера);

затем

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

По команде RUN запускается полученная программа, которую можно сохранить целиком по команде:

SAVE "ИМЯ", А (если желательно сохранить файл в текстовом формате);

или просто:

SAVE "ИМЯ" (если желательно сохранить его в наиболее компактном виде).

Будет целесообразно произвести полную компиляцию составленной программы, а также и программы на языке TurboPASCAL, в файл ИМЯ.EXE, исполняемый непосредственно под DOS или Windows. Для этого надо иметь в распоряжении какой-нибудь компилятор, например, Turbo BASIC или Quick BASIC.

Цифровой вольтметр

Очень короткая программа VOLTS.BAS прекрасно подходит для первых шагов в изучении только что собранного или купленного АЦП, но она также пригодна и для более общих задач.

200 REM VOLTS

210 GOSUB 100

220 D=INT(100*D)/100

230 LOCATE 1,1

240 PRINT USING "##.##"; D

250 GOTO 210

260 REM (c) 1997 Patrick GUEULLE

Программа выводит в верхнем левом углу экрана величину напряжения (в вольтах), поданного на вход модуля преобразователя. Эта величина подвергается простейшей обработке, поэтому данная программа — одна из самых быстродействующих в «библиотеке», даже при использовании очень медленных ПК.

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

Надо обратить внимание на способ, посредством которого измеренная величина округляется до двух знаков после запятой (строка 220), а потом выводится в жестком формате, наиболее соответствующем выбранной точности (строка 240). Подобное решение будет часто использоваться и в дальнейшем.

Эта программа рассчитана на работу совместно с 8- или 10-разрядным АЦП (точность 1 %), но ее можно оптимизировать и для работы с 12-раз рядным АЦП, исправив строки 220 и 240 следующим образом и обеспечив при этом три индицируемых знака после запятой (т. е. точность 0,1 %):

220 D=INT(1000*D)/1000

240 PRINT USING "##.###"; D

Не стоит также упускать из виду, что драйвер не выполняет никаких округлений, полностью соблюдая точность преобразователя. Только прикладная программа в соответствии с поставленной задачей должна так или иначе использовать получаемую точность, и не более того. Вывод трех знаков после запятой для 8-разрядного АЦП будет излишним, так как третий знак при этом не несет никакого смысла.

200 REM — BARRE —

210 LOCATE 6,1

220 FOR H=1 TO 5

230 PRINT "I….!..";

240 NEXT H

250 PRINT " I "

260 LOCATE 7,1

270 PRINT "0___1___2___"

280 PRINT "3___4___5"

290 GOSUB 100

300 D=INT(10*D)

310 LOCATE 5,1

320 PRINT SPC (D);" I";

330 PRINT SPC (50-D)

340 GOTO 290

350 REM (c) 1997 Patrick GUEULLE

Программа BARRE.BAS, в свою очередь, показывает, как легко можно организовать вывод аналоговой штриховой шкалы.