![]() | |
Слаботочка Книги 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 |
|