ВУЗ:
Составители:
70
На вход звукогенератора поступает логическое «И» двух сигналов:
выхода OUT 2-го канала таймера и содержимого бита 1 порта 61h. По-
этому, простейший способ генерации звука состоит в программировании
канала 2 таймера так, чтобы он вырабатывал прямоугольный импульс
заданной частоты, лежащий в звуковом диапазоне 20 Гц - 20 кГц (учи-
тывая качество динамика ПК 500-5000Гц). Для этого следует
использо-
вать режим таймера 3 с подходящим начальным значением счетчика. Ес-
ли затем установить биты 0 и 1 порта 61h, то импульс начнет поступать на
вход звукогенератора (бит 0 - это вход GATE канала 2, разрешающий
счет, а бит 1 - разрешение выдачи выхода OUT на вход звукогенератора).
Для выключения звука достаточно сбросить биты 0 - 1 в 61h. Значение
счетчика 2-го канала вычисляется по
формуле n=1193181/f (1193181 - так-
товая частота таймера в Гц, f - требуемая частота звука). Обратите внима-
ние, что т.о. будет получено значение для счетчика в десятичной системе.
Пример генерации звука (обязательно внимательное прочтение пре-
дыдущего описания работы таймера!)
Для работы с регистрами таймера можно воспользоваться программой
debug. Эта программа операционной системы DOS, поставляется и во
всех
последующих ОС MS в рамках эмуляции DOS. Запуск программы можно
выполнить так: Start Æ Run Ædebug ÆOK. Полный перечень команд debug
можно получить набрав вместо команды знак вопроса. Нам же понадобят-
ся две команды этой программы: i – для чтения из порта ввода/вывода и
o – для записи в порт. Чтобы проверить возможности генерации звука на
данном
ПК, нужно выполнить следующие команды:
-o 61 3 Разрешение выхода таймера (OUT) и разрешение счета (GATE)
-o 43 A6 Установка режима 3 для канала 2 (управляющее слово = 86)
-o 42 1 Запись старшего байта счетчика = 1
-o 42 2 Запись старшего байта счетчика = 2 (на октаву вниз)
-o 42 4 Запись старшего байта счетчика = 4 (на октаву вниз)
-o 42 8 Запись старшего байта счетчика = 8 (на октаву вниз)
-o 42 10 Запись старшего байта счетчика = 10 (на октаву вниз)
-o 61 0 Выключение выхода и счета
-quit Выход из программы debug
В данном примере в регистр счетчика загружался только старший байт
(управляющее слово, записанное в порт 43h, имело значение A6h). Значе-
ния старшего байта счетчика[1; 2; 4; 8; 10], с учетом нулевого младшего
байта, в десятичной системе дадут [256; 512; 1024; 2048; 4096]. Соответст-
вующие значения частоты на втором канале таймера будут
F=1193180/счетчик = [4660; 2330; 1165; 582; 291] Гц.
2.2.9 Организация прерываний
Прерывания - приостановление основных вычислений в процессоре, для
выполнения вспомогательных действий, технологических сервисных
процедур – можно разделить на два класса: внешние и внутренние. Каждо-
70 На вход звукогенератора поступает логическое «И» двух сигналов: выхода OUT 2-го канала таймера и содержимого бита 1 порта 61h. По- этому, простейший способ генерации звука состоит в программировании канала 2 таймера так, чтобы он вырабатывал прямоугольный импульс заданной частоты, лежащий в звуковом диапазоне 20 Гц - 20 кГц (учи- тывая качество динамика ПК 500-5000Гц). Для этого следует использо- вать режим таймера 3 с подходящим начальным значением счетчика. Ес- ли затем установить биты 0 и 1 порта 61h, то импульс начнет поступать на вход звукогенератора (бит 0 - это вход GATE канала 2, разрешающий счет, а бит 1 - разрешение выдачи выхода OUT на вход звукогенератора). Для выключения звука достаточно сбросить биты 0 - 1 в 61h. Значение счетчика 2-го канала вычисляется по формуле n=1193181/f (1193181 - так- товая частота таймера в Гц, f - требуемая частота звука). Обратите внима- ние, что т.о. будет получено значение для счетчика в десятичной системе. Пример генерации звука (обязательно внимательное прочтение пре- дыдущего описания работы таймера!) Для работы с регистрами таймера можно воспользоваться программой debug. Эта программа операционной системы DOS, поставляется и во всех последующих ОС MS в рамках эмуляции DOS. Запуск программы можно выполнить так: Start � Run �debug �OK. Полный перечень команд debug можно получить набрав вместо команды знак вопроса. Нам же понадобят- ся две команды этой программы: i для чтения из порта ввода/вывода и o для записи в порт. Чтобы проверить возможности генерации звука на данном ПК, нужно выполнить следующие команды: -o 61 3 Разрешение выхода таймера (OUT) и разрешение счета (GATE) -o 43 A6 Установка режима 3 для канала 2 (управляющее слово = 86) -o 42 1 Запись старшего байта счетчика = 1 -o 42 2 Запись старшего байта счетчика = 2 (на октаву вниз) -o 42 4 Запись старшего байта счетчика = 4 (на октаву вниз) -o 42 8 Запись старшего байта счетчика = 8 (на октаву вниз) -o 42 10 Запись старшего байта счетчика = 10 (на октаву вниз) -o 61 0 Выключение выхода и счета -quit Выход из программы debug В данном примере в регистр счетчика загружался только старший байт (управляющее слово, записанное в порт 43h, имело значение A6h). Значе- ния старшего байта счетчика[1; 2; 4; 8; 10], с учетом нулевого младшего байта, в десятичной системе дадут [256; 512; 1024; 2048; 4096]. Соответст- вующие значения частоты на втором канале таймера будут F=1193180/счетчик = [4660; 2330; 1165; 582; 291] Гц. 2.2.9 Организация прерываний Прерывания - приостановление основных вычислений в процессоре, для выполнения вспомогательных действий, технологических сервисных процедур можно разделить на два класса: внешние и внутренние. Каждо-
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »