Виберіть свою мову

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

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

(натисніть для збільшення)

На елементах 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 на вхід 0F (висновок 22) - сигнал А15. Схема спрощеного вузла керування пам'яттю показана на рис. 2. Слід мати на увазі, що на полі пам'яті тепер буде розташовуватися 16 відображень одного і того ж ОЗП. Таким чином, адреси 8000Н, 8800Н, 9000Н-F800H - еквівалентні.

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

Краще всього встановити трьохконтактний геркон, керований магнітом, як це робиться охоронної сигнализації. При відкриванні та закриванні дверей звучить дзвіночок. Його можна вимкнути, з'єднавши вихід РА2 (висновок 19) звукового співпроцесора з загальним проводом. Ефект реалізований програмно (табл. 1).

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

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

Потім слід запрограмувати музичний дзвінок. Для цього виконують такі дії.

З допомогою музичного редактора 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.
  • Автори: Ст. Оглезнев, Ст. Толстухин, р. Іжевськ