Слаботочка Книги

1 2 3 4 5 6 [7] 8 9 10 11 12 13

Состояние светофора меняется через равные интервалы времени (200). В каждом состоянии включается соответствующий свет (К)-красный, (Ж)-желтыйи (З)-зеле-ный, как указано в таблице.

Порядок ввода данных в приведенной выше программе следующий:

Количество состояний - 4

(Состояние выходов на одном интервале времени - 10000100 Интервал времени - 200

Далее последовательно вводятся данные о всех состояниях и интервалах. Когда все состояния будут введены, программа запрашивает разрешение на начало работы (строка 220) и при получении разрешения стартует со строки 300. При этом каждое состояние выводится на экран в виде 8-разрядного двоичного числа и в это же самое время эти 8 бит передаются в выходной порт.В соответсвии с сигналами на выходе порта включаются или вьпслючаются реле, которые, в свою очередь, управляют лампами светофора. Программа может быть значительно проще, если отказаться от ввода данных в двоичном виде и от их изображения на экране при выполнении программы.

10 F0RX-1T0 4 20 READ п 30 РОКЕ (4000(Ь-2*п),п 40 READn 50 РОКЕ (40001+2*п),п 60 NEXTx

70 DATABIN 10000100,200,ВШ 10001000,200,ВШ 11010000,200,ВШ

00110000,200 80 FORx-1 ТО 4 90 OUT 31 ,РЕЕК (4000(Н-2*х) 100 PAUSE РЕЕК (40001+2*х) ПО NEXTx 120 GO ТО 80

1000 FORx-1 ТО 10

1001 PRINT РЕЕК (40000+х)

1002 NEXTx

После запуска эта программа работает без вмешательства оператора. Световой эффект бегущий огонь задается следующей последовательностью состояний таймера:

Состояние

Интервал

Номер лампочки

Заданная последовательность может повторяться неопределнно долго, если в строке 380 заменить STOP на GOTO 300.

Множество различных последовательностей можно запрограммировать с помощью операторов цикла FOR-NEXT. Используя 30000 доступных ячеек памяти можно создать очень сложные и оригинальные световые эффекты.

4.8. ПОДПРОГРАММА ТАЙМЕР

Оператор PAUSE в СПЕКТРУМЕ может задать задержку до 22 минут, состоящую из 65535 интервалов. Описанная в Чфедыдущен разделе программа может задавать интервал времени до 255/50 секрт, поскольку одна ячейка памяти может задавать число до 255. Программа таймер может задавать интервалы от нескольких секунд до многих часов.

В программе или подпрофамме предполагается, что Q - это интервал, который должен быть задан. Переменная Q находится в ячейке памяти с адресом (40001+2*Ь) в виде числа от О до 255, Подпр01р8мма, однако, может преобразовать Q в секунды, минуты, часы или даже дни.

10 DIMa(8):DIMb(100):mMp(100):DIMq(10) ;

20 LET z-0: LETj~0: LET g-0

100 INPUT number of events ; a: LET g-a

105 PRINT g

110 PRINT event period

120 FORn-lTOa

130 INPUT type 8-diglt number ;b (n)

140 PRINT n

150 INPUT type interval up to 255 ;p(n)

160 PRINT TAB 6;b(n);TAB20;p(n)

170 LETz-b(n)

180 GO SUB 230

190 POKE (4000O+2*n),y

200 POKE (40001+2*n),p(n)

210 NEXTn - , - ~ ~

220 PRINT press any key to Start рговйяЛ PAUSE 0:001300

230 LETy-0 i , Щ

235 FORV-8TOISTEP-1 - . > - -

240 IF INT ((10(v-l))-z)<-0 THEN LET q(v)-2(v-l): GO TO 260

250 IF INT ((10(v-l))-z)>0THENLETq(v)-0:GOTO270

260 LETz-(2-(10(v-l)))

270 LETy-y+q(v)

280 NEXTv

290 RETURN

300 FORb-lTOg

310 LETy-PEEK(40000t2*b)

320 OUT31,y



330 GO SUB 500

340 PRINT events ;b; ;z

350 PRINT TAB 17; period ;b; ;PEEK (40001+2*b)

360 LET Q-PEEK (40001+2*b): GOSUB 600

370 NEXT b

380 STOP

500 LETz-0

505 FOR w-8 TO 1 STEP -1

510 if INT (y-(2(w-l)))<0THENLETa(w)-0:GOTO540

520 IFINT (y-(2(w-l)))>-0 THEN LET a(w)-10(w-l)

530 LETy-(y-(2(w-l)))

540 LETz-z+a(w)

550 NEXTw

560 RETURN

600 POKE 23674,0: POKE 23673,0:POKE 23672,0

610 LET HINT ((65536*PEEK23674+256*PEEK23673fPEEK 23672)750)

620 IF Q-t THEN RETURN

630 GO TO 610

В строке 620 проводится проверка параметров цикла по усжмию >-так как момент >- может быть пропущен в процессе выполнения цикла. Строка 360 в программе описанной в разделе 4.7 заменена на :

260 LET Q-PEEK(40001+2*b): GOSUB 600

В приведенной программе величина Q - это время в секундах. Ест требуете измерять время в минутах, то строка 620 должна иметь вид: IF Q>*60 THEN RETURN

Если требуется время в часах, то строка 620 должна быть такой: IF Q >-Т*3600 THEN RETURN

4.9. УПРАВЛЕНИЕ ТЕАТРАЛЬНЫМ ОСВЕЩЕНИЕМ

Управление освещением на протяжении всего спектакля может быть очень сложным и отнимающим много времени. Инженер по освещению должен иметь перед глазами сценарий и следить за действием и своевременно включать и выключать множество групп светильников, фокусировать и направлять прожектора. С помощью выходного порта и платы оптотиристоров можно одновременно управлять группой из 8 светильников. Последовательность включения может быть запрограммирована и переход от одного состояния к другому осуществляется при нажатии на любую клавишу СПЕКТРУМА. Возможен переход как к послудующему состоянию так и к предыдущему при нажатии на соответствующую клавишу. Для этого программа из раздела 4.7 должна быть изменена:

Строка 150 LET P(N)-0

Строка 360 PAUSE О

Нажатие на любую клавишу приведет к переходу к следующему состоянию. Если требуется и возможность возврата, то строка 360 должна быть:

360 LET A$-INKEY $: IF А$- THEN GOTO 360; IF A$- R THEN LET B-B-1: GOTO 310

Теперь программа при нажатии иа клавишу R возвращается в исходное состояние в запрограммированной последовательности, а при нажатии на любую другую идет вперед.

4.10. УПРАВЛЕНИЕ СИСТЕМОЙ ОТОПЛЕНИЯ

в одном полезном деле в пр01раммируемом таймере задаются четверть-часовые интервалы (IF Q>-T*750 в с*роке 620). (Примшеревод Т*750 задает интервал 1/5 часа). Домашний автомат центрального отопления обычно имеет не более двух циклов включено-выключено в течении 24 часов. СПЕКТРУМ же позволит сделать столько включений, сколько потребуется, приэтом можно учесть и день недели и неделю года. В дополнении к этому можно одновременно управлять каждым из 8 насосов. Многие системы отопления весьма расточительны, так как нагревают весь дом целиком, когда требуется давать небольшой подоп>еи один раз в час в определенные комнаты и только тогда, когда в доме есть люди. Оптотиристоры могут включать и выключать 8 различных приборов таких какиасосы, лампы, электрические сушилки, охранную сигнализацию и т.д.

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

Только одно неудобство есть в этой системе: пока СПЕКТРУМ подключен к системе отопления он не может быть использован где-либо еще.

4.11. ГЕНЕРАТОР СИГНАЛОВ СЛОЖНОЙ ФОРМЫ

СПЕКТРУМ может непосредственно генерировать циклические функции числа PI-SIN, COS, TAN, LN, EXP. Можно генерировать и сигнал более сложной формы если его задать соответствующим уравнением, хотя выходная частота сигнала будет ограничена. К сожалению, скорость работы СПЕКТРУМА при вычислении SIN, COS и др. функций Ограничивает выходную частоту всего несколькими герцами. Выходной сигнал можно вывести на экран используя операторы PLOT и DRAW и/или с помощью ЦАП преобразовать ваналоговый вид. На выходе ЦАП сигнал может быть измерен вольтметром. Медленно меняющиеся ситалы синусоидальной или другой формы можно использовать длярегулирования скорости мотора; программа для этого может быть такой:

10 FOR N-0 ТО 255

20 PLOT N, 88+80*SIN(N/128*PI)

30 OUT31,88+80*SIN(N/128*PI)

40 NEXTN

50 GOTO 10

Скорость ввода может быть увеличена если опустить строку 20 или 30.

Создавать звуковые сигналы более трудно, так как частота очень низкая. Наиболь-шаяя частота, которую можно создать с помощью программы на БЕЙСИКЕ задается такой программой:



10 OUT31,0:OUT31. 100 20 GOTO 10

Интересно определить время которое компьютер затрачивает на вычисление и вывод сигнала. Для этого следует ввести и запустить программу: 10 FORX-1TO100 20 ОиТ31,Х:ОиТ31,0 30 NEXTX 40 FOR Х-1 ТО 50 50 ОиТ31,2*Х:ОиТ31,0 60 NEXTX 70 FOR Х-1 ТО 1000 80 ОиТ31,Х/20:ОиТ31.0 90 NEXTX 100 GOTO 10

Будут слышны три сигнала. Они могли бы быть одинаковыми, но поскольку сложность программ, которые их генерируют (это строки 10-30; 40-60; 70-90) возрастает, то высота звука уменьшается. Чем сложнее программа, тем больше время ее выполнения и тем ниже высота звука.

5. УСТРОЙСТВА, ИСПОЛЬЗУЮЩИЕ АЦП И ЦАП

Описанные далее схемы и устройства будут использовать совместно АЦП и ЦАП. В некоторых очень интересньк устройствах АЦП принимает входные сигналы и одновременно ЦАП (или только вькодной порт) генерирует выходные. Расширение использования требует одновременного хранения в памяти СПЕКТРУМА программы и данньк АЦП и ЦАП.

Все устройства описанные в этой главе требуют наличия:

1.АЦП.

2. ЦАП или плат вькодного орта.

3. Источник питания ЦАП.

4. Другие подключаемые к ним устройства, такие как микрофоны, термометры, переключатели, насосы, или модель железной дороги масштаба 00.

5.1. ЗАПИСЬ И ВОСПРОИЗВЕДЕНИЕ ЗВУКА

Для чего нужно с помощью компьютера записывать и воспроизводить звук, коща кассетный магнитофон делает это легко? В отличии от магнитофона, звук хранимый в памяти СПЕКТРУМА может воспроизводиться с увеличенной и уменьшенной скоростью, в прямом и обратном маправлнии, звук может легко редактироваться и т.д. В предлагаемой разработке сигнал записанный с помощью микрофона может бьггь воспроизведен различными способами с помощью простых программ на БЕЙСИКЕ. В разделе 5.3 по этой причине записываются звуки соответствующие буквам алфавита, используя которые можно составлять слова. СПЕКТРУМ получает возможность разговаривать. Эти звуки могут быть записаны на магнитофон для дальнейшего использования. Наконец, в разделе 5.4 описывается, как на этой технологии построить цифровой ревербератор.

Необходимо понимать, что компьютер синтезирует звук и это часто снижает качество звука. Качественный сигнал получается при частоте выборок 10 кГц, при этом сигнал длительностью 1 сек. занимает 10000 ячеек памяти. Это демонстрируется в программе описанной в разделе 5.2. Если требуется записать звук большой длительности, тонеобходимобудет снизить частоту выборки И; следовательно, качество звука. Для звука воспроизводимого говорящим компьютером характерны шумы квантования.

5.2. ЗАПИСЬ ЗВУКА НА СПЕКТРУМЕ

Листинг программы выполняющей запись звука:

Мнемоника Id de,40960

push af push hi

Десятичный код

160 245 229

Комеитарий

Стартовый адрес области записи выборок звукового сигнала.




1 2 3 4 5 6 [7] 8 9 10 11 12 13
Яндекс.Метрика