Отчет по практике: Микропроцессорные системы
Рисунок 1.2 – Результат работы программы
2 ГЕНЕРАЦИЯ ЗВУКОВЫХ СИГНАЛОВ В ПЭВМ
Для генерации звука в ПЭВМ используется программируемый таймер и программируемый параллельный интерфейс. Поэтому кратко рассмотрим использование данных микросхем в ПЭВМ.
2.1 Таймер КР1810ВИ54
Для задания временных интервалов и формирования сигналов с различными временными параметрами в IBMPC применяется программируемый таймер i8254 (отечественный аналог КР1810ВИ54) рисунок 2.1.
Рисунок 2.1 – Условно графическое обозначение таймера КР1810ВИ54
Таймер содержит три независимых канала, каждый из которого можно запрограммировать на работу в одном из шести режимов. Программирование канала осуществляется путём ввода управляющих слов в регистр режима канала и начального значения в его счётчики. Каждый канал имеет управляющий вход GATE и выход OUT и может работать в одном из следующих шести режимов, Которые условно можно разделить на три группы: Программируемый одновибратор (режимы 0 и 1), делитель частоты (режимы 2 и 3) , счётчик событий (режимы 4 и 5). При этом режимы 0, 4 – это режимы автозагрузки, т.е. после окончания выполнения функция без перепрограммирования по фронту сигнала GATE. Режимы 2, 3 – это режимы авто загрузки, т.е. после окончания выполнения функция без перепрограммирования начинает выполняться заново.
Режим 0 – прерывание терминального счёта.
Режим 1 – ждущий мультивибратор.
Режим 2 – генератор частоты.
Режим 3 – генератор меандра.
Режим 3 – счётчик событий.
Режим 5 – счётчик событий с автозагрузкой.
Для работы таймера его нужно запрограммировать на необходимый вид работы и загрузить в него константу счётчика. В IBMPC таймер имеет следующие программируемые порты:
Таблица 2.1 – Программируемые порты
Адрес | Операция | Назначение |
40h |
запись чтение |
Загрузка счётчика канала 0 Чтение счётчика канала 0 |
41h |
запись чтение |
Загрузка счётчика канала 1 Чтение счётчика канала 1 |
42h |
запись чтение |
Загрузка счётчика канала 2 Чтение счётчика канала 2 |
43h | запись | Запись управляющего слова в регистр режима канала |
Для задания режима работы таймера нужно записать в порт 43h константу в соответствии с форматом управляющего слова (рисунок 2.2). А затем в порт 40h, 41h или 42h, в зависимости от программирующего канала, записать константу счётчика (для генерации звука данная константа задаёт частоту звука).
Рисунок 2.2 – Формат управляющего слова