Воспроизведение PCM звуков через PC-Speaker.
--------------------------------------------
На PC-Speaker может подаваться только прямоугольный сигнал - либо
ток есть, либо его нет, но некоторые ухищрения позволяют воспроизво-
лить через него звук, записанный в импульсно-кодовой модуляции (PCM).
Если подать на динамик прямоугольный сигнал с частотой заведомо выше
максимальной частоты, которую он может воспроизвести, то из-за инерт-
ности мембраны и электрических цепей мембрана колебаться не будет, а
отклониться на определенное расстояние. Далее, если мы будем менять
скважность сигнала произойдет изменение отклонения мембраны. Меняя та-
ким способом отклонение мембраны с частотой выборки, мы сможем воспро-
извести звук.
В данной программе применена несколько упрощенная схема - на про-
тяжении времени, соответствующего одной выборки, часть этого времени
сигнал есть, а остальную часть - нет. Это достигается использованием
особого режима микросхемы таймера: после загрузки числа в регистр де-
лителя на выходе микросхемы появляется сигнал, а по истечении времени,
соответствующего этому числу - пропадает. Числа загружаются в делитель
по прерыванию таймера, который запрограммирован на частоту выборок.
Сигнал
+--+ +------+ +-------+ +-----+ +---+ +-+ |
| | | | | | | | | | | | |
+--+------+------+--+-------+-+-----+---+---+-----+-+-------+
| | | | | | |
| 1 | 2 | 3 | 4 | 5 | 6 |
Выборки
Во время воспроизведения другие прерывания, кроме таймера, замас-
кированы, хотя этого можно и не делать.
Содержимое архива:
PLAY PAS - Тестовая программа, воспроизводящая произвольные RAW файлы.
PLAYRAW PAS - Модуль для воспроизведения RAW файлов (uses PlaSnd).
PLAYSND PAS - Собственно модуль для извлечения звуков из PC-Speaker'а.
SNDEMO PAS - Тестовая программа, воспроизводящая RAW файлы из этого ка-
талога (uses PlayRaw).
WAV2RAW PAS - Программа преобразования WAV файла в RAW.
WAVINFO PAS - Получен
|