Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Простейшая микро-ЭВМ. Проектирование. Наладка. Использование.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

10.6. Звуковая сигнализация

В рассмотренной в § 9.2 кон­струкции кодового замка мы уже использовали звуковую сигнализацию для подачи сигнала тревоги. Для этого наушник или репродуктор подключался через резистор 200 Ом к младшему разряду порта 001 между выводом 16 микросхемы D18 и источником +5 В. Определенный звуковой тон получался в результате того, что в порт 001 выводилось содержание ре­гистра, инкрементируемого в постоянном темпе. Частота сиг­нала, получаемого с младшего разряда порта, равна половине частоты инкрементирования и задается временной задержкой соответствующего программного цикла. В следующем разряде частота вдвое меньше и т. д. Следовательно, подключая репро­дуктор не к младшему разряду порта, а к старшим, получим тон на соответствующее число октав ниже. Подавая на репро­дуктор через резисторы сигналы с разных разрядов порта, полу­чим звуки одного тона, но с разным содержанием гармоник. Если же в несколько портов выводить содержимое регистров, к которым с постоянной частотой прибавляются различные чис­ла, то, подключив репродуктор, к выходам портов через резисто­ры, можно получить различные аккорды.

Таким образом, звуки разных частот можно получать, при­бавляя к содержимому регистра разные числа или же меняя частоту суммирования.

Подключим репродуктор и введем в ПМ-ЭВМ следующую программу:

014000061 Ml: LXISP,TAB

014001 036

014002014

014003301 М2: POP В

014 004 170 MOV A, B

014 005 267 ORA A

014006312 JZ.M1

014 007 000

014010014

014011171 МЗ: MOVA.C

014012267 ORA A

014013312 JZ,M4

014014 023

014015 014

014016034 INRE

014017173 MOV A, E

014020323 OUT, 0010

014 021 001

014022171 MOV А, С

014023075 М4: DCRA

014024302 JNZ,M4

014025 023

014026014

014 027 005 UCR B

014030302 JNZ,M3

014031 Oil

014032 014

014 033 303 JMP, M2

014 034 003

014035 014

014 036 175 TAB: до

014037 145

014040160 ре

014041161

014 042 144 ми

014043 177

014 044 136 фа

014 045 207

014 046 124 соль

014 047 230

014050113 ля

014 050 252

014051102 си

014 052 277

014 053 077 до

014054 313

014 055 000

014 056 000

Нажмем кнопки СБРОС и Ц. Репродуктор начинает наигры­вать гамму. Воспроизводимая мелодия запрограммирована таб­лицей, начинающейся с метки TAB. Таблица содержит пары чи­сел, последовательно извлекаемые процессором из памяти с по­мощью команды POP В. Первое число из пары заносится в ре­гистр С и задает высоту тона, второе число заносится в регистр В и задает длительность звучания ноты. Если в регистре В оказы­вается нуль, программа возвращается к началу таблицы. Если в регистре С оказывается нуль, формируется пауза. Подсчитав длительности программных циклов, нетрудно определить, какие числа в таблице соответствуют различным нотам, и запрограмми­ровать любую мелодию. Надо иметь в виду следующее: для того чтобы различные ноты имели одинаковую длительность звучания, произведение первого числа из пары на второе должно быть постоянным.

Читатель может усложнить программу, чтобы получить более интересное звучание. Он может также самостоятельно разрабо­тать программу "музыкального ящика", позволяющую самому наигрывать различные мелодии, пользуясь клавиатурой ПМ-ЭВМ. Мир машинной музыки необъятен, и начав с простей­ших программ, читатель при желании может достичь в этой области новых и оригинальных результатов.