Выберите язык

За последние годы на страницах "Радио" было описано немало различных музыкальных звонков. В большинстве случаев они довольно просты и результат, естественно, не вполне удовлетворительный. Предлагаемый вниманию читателей вариант с использованием микропроцессоров - более сложный, но зато обладает большими возможностями. Устройство выполняет функцию дверного звонка, однако, после минимальной доработки и выбора понравившихся мелодий, ему можно найти и другие применения.

Музыкальный звонок собран из деталей SPECTRUM-совместимых компьютеров. Это позволило добиться хороших результатов. Схема устройства представлена на рис. 1.

Музыкальный дверной звонок на звуковом сопроцессоре AY8910

(нажмите для увеличения)

На элементах DD5.1 - DD5.3 выполнен задающий генератор. Элементы DD6.1-DD6.3 образуют порт звукового сопроцессора, для управления которым анализируется только сигнал А14. Выбор адреса обусловлен желанием авторов сохранить совместимость с компьютером ZX-SPECTRUM, что дает возможность использовать большое число уже существующих программ и мелодий. При этом управление звуковым сопроцессором не изменилось:

LD BC,65533: OUT С,А - выбор регистра;

LD BC,49149: OUT C,A - запись в регистр;

LD 60,65533: IN C,A - чтение из регистра.

Назначение регистров звукового сопроцессора подробно описано в [1, 2]. Содержимое регистра С здесь не играет роли. Его используют по своему усмотрению.

На элементах DD7, DD5.4, DD5.5 и диодах VD2, VD3 собран узел управления памятью. Формируемый им сигнал RAM активизирует ОЗУ в случае обращения к памяти в пределах адресов F800H-FFFFH (63488-65535). В противном случае выбиравтся ПЗУ. Если нв предполагается использовать ПЗУ объемом более 32 Кбайт, конструкцию можно упростить. Для этого необходимо удалить микросхему DD7, на катод диода VD2 подать сигнал А15 с процессора (резистор R5 - оставить), на вход CS ПЗУ DD2 (вывод 20) подать сигнал MR, a на вход 0Е (вывод 22) - сигнал А15. Схема упрощенного узла управления памятью показана на рис. 2. Следует иметь в виду, что на поле памяти теперь будет располагаться 16 отображений одного и того же ОЗУ. Таким образом, адреса 8000Н, 8800Н, 9000Н-F800H - эквивалентны.

Музыкальный дверной звонок на звуковом сопроцессоре AY8910

В конструкции применим любой кварцевый резонатор ZQ1 частотой 2 МГц. Микросхемы заменимы на их многочисленные аналоги. Диоды - любые серий КД521, КД522. Значения сопротивления резисторов и емкость конденсаторов допустимо менять в широких пределах. Возможно, придется подобрать сопротивление резисторов R1 - для устойчивой работы генератора и R18 - для оптимального уровня громкости. Блокировочные конденсаторы C3-С9 устанавливаются на проводники питания микросхем, желательно ближе к их корпусам. Выключатели: SB1 - кнопка звонка; SF1 устанавливается на косяке двери, или используется любой размыкающий выключатель (при закрытой двери цепь разомкнута).

Лучше всего установить трехконтактный геркон, управляемый магнитом, как это делается в охранных сигнализациях. При открывании и закрывании двери звучит колокольчик. Его можно отключить, соединив выход РА2 (вывод 19) звукового сопроцессора с общим проводом. Эффект реализован программно (табл. 1).

Музыкальный дверной звонок на звуковом сопроцессоре AY8910

Устройство собирают на готовой плате от SPECTRUM-совместим ого компьютера или АОНа. На ней уже имеются места для установки ОЗУ, ПЗУ и процессоров, а также подведены проводники питания, информационные и адресные линии. Готовое устройство, блок питания и усилитель удобно разместить в корпусе радиоприемника или магнитофона.

Налаживание звонка начинают с проверки монтажа. Подключите блок питания и усилитель. Далее необходимо записать программу TEST (табл. 2) в ПЗУ любого объема (см. [3]). Если после подачи на процессор команды RESET услышите колокольчик - все в порядке (быть может, кроме ОЗУ). В противном случае либо не запускается генератор, либо неисправны детали или неправильно выполнен монтаж. Для проверки ОЗУ запишите нулевые значения по адресам 0001Н, 0002Н. Если колокольчик зазвенит, значит, ОЗУ исправно, если нет - попробуйте заменить диод VD1 двумя, соединенными последовательно.

Музыкальный дверной звонок на звуковом сопроцессоре AY8910

Затем следует запрограммировать музыкальный звонок. Для этого выполняют следующие действия.

С помощью музыкального редактора SOUND TRACKER V3.0 нужно загрузить любую скомпилированную мелодию по адресу 63488, выбрав команду "WITH PLAYER".

В БЕЙСИКе выполнить команду CLEAR 4E4.

Из операционной системы TR-DOS выполнить команды:

  • LOAD "имя" CODE (где "имя" - имя загруженного файла);
  • SAVE "player" CODE 63564,1116;
  • Загрузить мелодии, выбрав команду "WITHOUT PLAYER";
  • Записать текст программы PROG.

Объединить полученные файлы в один, разместив в нем:

  • программу PROG, начиная с адреса 0000Н (00000);
  • программу player, начиная с адреса 0200H (00512);
  • скомпилированные мелодии в свободной памяти ПЗУ (кроме адресов F800H-FFFFH);
  • сразу после программы PROG таблицу с адресами мелодий, завершив ее словом FFFFH. Длина таблицы любая в пределах 2-182 байт (1-91 мелодия).

Если свободное пространство ПЗУ и таблицы адресов заполнены кодами FFH, не стирая "прошивки", можно добавить новую мелодию на свободное место и записать ее адрес в конец таблицы.

В программе PROG использованы следующие константы:

  • 00D7H 00D8H - определяет время задержки для устранения дребезга контактов выключателя SB1: 13*{(00D8H)*256+(00D7H)), в микросекундах;
  • 0086Н 0087Н - определяет период времени между вызовами программы player 13*{(0087H)*256+(0086H)}, в микросекундах (примерно 0,02 с), тогда период между нотами в -DELAY- раз больше (здесь и далее в знаках - - заключен параметр музыкального редактора SOUND TRACKER);
  • 00F7H - содержит параметр -LENGTH- при -PATTERNS LENGTH-, равном 63, т. е. (00F7H)*64 - число нот, проигрываемых до самостоятельной остановки.

Для рационального использования памяти ПЗУ целесообразно дли ну мелодий предварительно подогнать в редакторе SOUND TRACKER к содержимому ячейки 00F7H. Если мелодия будет короче, после одного проигрыша она начнется сначала и отыграет положенные (00F7H)*64 нот (конечно, при условии, что дверь останется закрытой); а если длиннее, окончание мелодии не прозвучит.

Вместо редактора SOUND TRACKER можно воспользоваться другой версией, скорректировав при необходимости некоторые константы в программе PROG:

  • (000ВН,000СН) - длина программы player;
  • (0055Н,0056Н) - адрес, по которому в процедуру инициализации заносится адрес текущей мелодии;
  • (0062Н,0063Н) - адрес процедуры инициализации;
  • (0083Н,0084Н) - адрес процедуры проигрывателя;
  • (00САН,00СВН) - адрес процедуры выключения звука.

Звонок иногда создает помехи в виде полос на экране телевизора. Их уровень можно снизить, гальванически развязав звонок и провода, идущие к кнопке и датчику двери. Реализовать это можно, используя два оптрона АОТ110, гальванический элемент от наручных часов и несколько резисторов. При закрытой двери и не нажатой кнопке цепи разомкнуты и батарея не разряжается. Можно также посоветовать усовершенствовать тактовый генератор, узел выборки и питания ОЗУ, узел запуска и сброса.

Литература

  • Ларченко А., Родионов Н. ZX Spectrum & TR-DOS для пользователей и программистов. - С.-Пб.: ПИТЕР, 1994.
  • Костиневич Р. Музыкальный сопроцессор AY-3-8910 на "Векторе-О6ц". - Радиолюбитель, 1995, №5, с. 25.
  • Боровик О., Парфенов А., Сырямкин В. Увлекательные игры на бытовом компьютере. - Томск: МГП "Раско", 1992.
  • Авторы: В.Оглезнев, В.Толстухин, г.Ижевск