Электронные устройства для "Sinclar ZX Spectrum" 1993 г.

Цифро-аналоговый преобразователь - конструкция и проверка ЦАП. Световые эффекты. Подпрограмма "ТАЙМЕР". Управление освещением и системой отопления.


4.4. ЦИФРО-АНАЛОГОВЫЙ
ПРЕОБРАЗОВАТЕЛЬ

Второй основной платой описанной в этой книге является ЦАП с интегральным
портом (таким же как и уже описанный), входным и выходным усилителями. Вход-
ной усилитель расположенный в этой плате (один из 4-х операционных усилителей
микросхемы 3403) используется для усиления сигналов, поступающих на вход АЦП
описанного в главе 3. Два свободных усилителя этой микросхемы при необходимости
можно использовать. Схема их включения аналогична усилителю с выводами 1,2,3.

Схема ЦАП приведена на рис 4.2. Плата ЦАП рассчитана на подключение к
разъему на плате АЦП. На этом разъеме имеются все необходимые сигналы. Такая
конструкция платы определяется тем, что во многих применениях ЦАП и АЦП ис-
пользуются совместно. Схема ЦАП не использует источников питания СПЕКТРУМА.
Для питания ЦАП используется внешний источник +5В,-5В,+10В.

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

Для построения ЦАП выбрана дешевая микросхема типа DAC0801. Выход этой
микросхемы построен таким образом, что входы операционного усилителя можно
подключать к нему непосредственно. На выходе операционного усилителя будет
выходной аналоговый сигнал (этот сигнал измеряется относительно 0В). В этой схеме
используется выходной порт такой-же как и в предыдущей схеме. Схема адресации
расположена на плате АЦП за исключением одного инвертора на микросхеме 74LS04
размещенной на плате ЦАП.

Схема ЦАП преобразует ^разрядные двоичные слова в соответствующее положе-
ние управляемого резистивного делителя. Все эти положения нумеруются от 0 до 255.
Тактирования ЦАП не требуется^ f^i Преобразование выполняется непосредственно
и это делает схему относительно простой^"

4,5. КОНСТРУКЦИЯ ЦАП

ЦАП можно сконструировать и на специально разработанной печатной плате и на
макетной плате. Предпочтение отдано монтажу изолированным проводом, т.к. одно-
именные выводы микросхем (D1-D8) 74LS374 и DAC0801, которые должны быть
соединены между собой, имеют разные номера. Эта сложность может быть преодоле-
на и без применения изолированных проводов, однако этого нужна плата в 4 раза
больше. Можно, конечно, сделать и такую плату.

Монтаж платы выполняется в^ычн^последовательности: Г ш.

1. Монтажная плата: обрезается ito размеру« разрезаются лишние перемычки.

2. УстаШшливаютсяпанельквдля микросхем.

3. Выполняются соединения изолированным проводом 0,6 мм;

4. Устанавливают разъемы и другие элементы.

5. Собирается источник питания и подключается к плате.

6. В панельки вставляются микросхемы.

4.6. ПРОВЕРКА ЦАП

Выполнить обычную визуальную проверку монтажа. Не включая СПЕКТРУМ
вставить в разъем АЦП и ЦАП. Не включая питания ЦАП включить компьютер. Если
СПЕКТРУМ стартует нормально, то можно продолжить проверку.

Проверить источник питания, установить напряжения +5 В, -5 В, +10 В. Вставить
все платы в разъемы и включить питание. СПЕКТРУМ опять должен стартовать
обычным образом.
Введите:

10 FOR Х-1 ТО 255
20 OUT 31,X
30 NEXT X
40 GOTO 10

При выполнении этой программы генерируется линейно-изменяющееся перемен-
ное напряжение, которое может быть измерено вольтметром, который подключается
к выходу ЦАПа и шине питания 0 В. Линейное изменение напряжения от минималь-
ного до максимального длится около 1 сек. С помощью осциллографа можно убедиться
что линейно-изменяющееся напряжение состоит из 255 ступенек. Наконец проверяем
усилитель расположенный на плате АЦП по методике описанной в разделе 3.9.

4.7. СВЕТОВЫЕ ЭФФЕКТЫ

Этот проект основан на использовании программируемого таймера и имеет мно-
жество применений.
Листинг программы:

10 DIM а(8): DIM b(100): DIM: р(100): DIM q<10)

20 LET z-0: LET y-0: LET g-0

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

105 PRINT g

110 PRINT "event period"

120 FOR n-1 TO a

130 INPUT "type 8-digit number";b(n)

140 PRINT n

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

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

170 LET z-b(n)

180 GO SUB 230

190 POKE (40000f2*n),y

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

210 NEXTn

220 PRINT "press any key to start program": PAUSE 0: GO TO 300

230 LET y-0

235 FOR v-8 TO 1 STEP -1

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

250 IF INT ((10^ (v-1)) -z) >0 THEN LET q (v)-O: GO TO 270

260 LET z- (z- (10~ (v-1)))

270 LETy-y+q(v)

280 NEXT v

290 RETURN

300 FOR b-1 TO q

310 LET y-PEEK <40000+2*b)

320 out 31,у

330 go sub 500

340 PRINT "event ";b;" ";z

350 PRINT TAB 17;"period ";b;M ";PEEK <40001+2*b)

360 PAUSE PEEK <40001+2*b)

370 NEXT b

380 stop , : ^

500 let r-o у

505 FOR w-8 TO 1 STEP -1 Д

510 IF INT (y-(2^(^l)))<0rlllBN LET,e(w)4): GO TO 540

520 IF INT (y-(2/4.(W:-l)))>4)fHlEN LET )

530 LET y-(y-(2^(w-l)))

540 LETz-z+a(w>;

550 next w :, ;

560 RETURN *"

1000 FOR x-0 TO 15 ^ ,

1010 PRINT PEEK <406ti0+k>, _ ^

1020 NEXTx  ~

Программа состоит из следующих Частей:

1. Строки 10-170 позволяют пользователю устанавливать интервалы времени и
значения выходных сигналов.

2. Строки 190 и 200 загружают эту информацию в последовательные ячейки
памяти для дальнейшего использования.

3. Строки 230-290 - это программа перевода числа из двоичной формы записи в
десятичную. Это позволяет пользователю программировать выходные сигналы в виде
8-разрядного двоичного числа. К сожалению, оператор BIN для этой цели здесь
использовать нельзя.

4. Строки 300-380 .- считывается_записанная ранее в память информация © выход-
ных сигналах. Далее эти данные'вьгдаются на порт вывода. : ~ ~ '

5. Строки 500-560- ^это программа перевода чисел из десятичной формы записи в
двоичную,эдо требуется для отображения на экране ГО" и -'1" обозначающих включе-
ние и выключение источников света.

Объясним процесс работы программы на примере светофора.

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

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

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

Далее последовательно вводятся данные о всех состояниях и интервалах. Когда все
состояния будут введены, программа запрашивает разрешение на начало работы
(строка 220) и при получении разрешения стартует со строки 300. При этом каждое
состояние выводится на экран в виде 8-разрядного двоичного числа и в это же самое
время эти 8 бит передаются в выходной порт.В соответсвии с сигналами на выходе
порта включаются или выключаются реле, которые, в свою очередь, управляют лам-
пами светофора. Программа может быть значительно проще, если отказаться от ввода
данных в двоичном виде и от их изображения на экране при выполнении программы.
10 FOR х-1 ТО 4
20 READ п
30 РОКЕ (40000+2*п) ,п
40 READ п
50 РОКЕ (40001+2*п) ,п
60 NEXTx

70 DATA BIN 10000100,200,BIN 10001000,200,BIN 11010000,200,BIN
00110000,200
80 FORx-1 TO 4
90 OUT 31 ,PEEK (40000+2*x)
100 PAUSE PEEK (40001+2*x)
110 NEXTx
120 GO TO 80

1000 FOR x—1 TO 10

1001 PRINT PEEK (40000+x)

1002 NEXTx

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

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

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

4.8- ПОДПРОГРАММА "ТАЙМЕР"

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

В программе или подпрограммепредполагается, <aolQ - это интервал, который
должен быть задан. Переменная Q находится вячейке памяти с адресом (40001+2*Ь)
в виде числа от 0 до 255кПодпроЕр$йма, однако, может преобразовать Q в секунды,
минуты, часы или даже Дни. - V/

10 DIM а(8): DIM Ь( 100): tt&p<100): DIMq<10)

20 LET z-Ю: LETy-HQ: LET gH(£

100 INPUT "number ofevents"; a: LET g-a

105 PRINT g >}/--.

110 PRINT "event periodw {; , : — - - .

120 FOR n-1 TO a " V p

130 INPUT "type 8-digit number";b(n)

140 PRINT n

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

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

170 LETz-b(n)

180 GO SUB 230

190 POKE (40000+2*n) ,y

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

210 NEXTn V ^ ^ , r ; " : , - "-

220 PRINT "pre» any key to sterf program": PAUSE 0: GO TO 300
230 LEty-0 - -

235 FOR v-8 TO I STEP -1

240 IF INT «10~(v-l))-z)<-<> THEN LET q(v)-2~(v-l): GOTO 260

250 IF INT <<1(Г <v-l))-z)>0 THEN LET q(v)-0: GO TO 270

260 LET z-(z-(10A(v-l)))

270 LETy-y+q(v)

280 NEXT v

290 RETURN

300 FOR b-1 TO g

310 LET y-PEEK (40000f2*b)

320 OUT 31,у

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 LET z-0

505 FOR w-8 TO 1 STEP -1

510 if INT (y-(2/s(w-l)))<0 THEN LET a(w)-0: GO TO 540

520 IF INT (y- (2^ (w-1))) >-0 THEN LET a (w) -10Л (w-1)

530 LET y-(y-(2/s(w-l)))

540 LET z-z+a (w)

550 NEXT w

560 RETURN

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

610 LET t-INT ((65536*PEEK 23674+256*PEEK 23673+PEEK 23672)/50)

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 0

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

360 LET A$-INKEY $: IF A$-" " THEN GOTO 360;

IF A$-"R"THEN LET B-B-l: GOTO 310
Теперь программа при нажатии на клавишу "R" возвращается в исходное состоя-
ние в запрограммированной последовательности, а при нажатии на любую другую
идет вперед.

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

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

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

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

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

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

10 FOR N-0 ТО 255
20 PLOT N, 88+80*SIN(N/128*PI)
30 OUT 31, 88+80*SIN(N/128*PI)
40 NEXT N
50 GOTO 10

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

10 OUT 31, OiOUT 31, 100
20 GOTO 10

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

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




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
по музе псекозa - Музыку IRONMAN - теперь, или уже давно дает не за деньги, так что если что звените!
Юмор - анекдоты.
Реклама - реклама и обьявления.
Авторы - авторы газеты.
Rants & Raves - Лучшая пятерка афоризмов из газеты ZX-Pilot.

В этот день...   21 ноября