МИНИСТЕРСТВО ВЫСШЕГО И СРЕДНЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ УССР
КОММУНАРСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ 29
'•ФОРМИРОВАНИЕ ЗВУКОВЫХ СИГНАЛОВ"
1С КУРСУ "ПРОГРАММИРОВАНИЕ И ПРИМЕНЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ
И МИ1{РОПРОЦЕССОРНОЙ ТЕХНИКИ"
(для студентов всех специальностей и форм обучения)
Утверждено
на заседании РИС
института.
Протокол № 3 от 01.06.87.
Коммунарcк КГМИ 1988
ББК 3973.2-JDI8
Методические указания к выполнению лабораторной работы 29 "Формирование звуковых сигналов" по курсу "Программирование и применение вычислительной и микропроцессорной техники" (для студентов всех специальностей и форм обучения) / Сост. С.И.Зайцев. - Коммунарск: КГМИ, 1988. - 12 с.
Приведены алгоритмы и программы организации временных задержек и генерирования звуковых сигналов для микропроцессорного устройства "Микролаб".
Составитель доц. С.И.Зайцев
Рецензенты: А.И.Ровенок
П.А.Данчук
Цель работы - исследование алгоритмов и программ организации временных задержек и формирования звуковых сигналов,
Описание лабораторной установки
Для того, чтобы "заставить" звучать громкоговоритель МПУ "Микролаб", необходимо на нулевом разряде порта В сформировать последовательность чередующихся сигналов 0 и I с одинаковыми длительностями (рис. I).
Рис. I. Схема формирования звукового сигнала
Естественно, что чистота следования импульсов должна лежать в звуковом диапазоне. Программу формирования последовательности импульсов следует строить с использованием специальной подпрограммы формирования временной задержки.
В общем случае программная реализация временной задержки использует метод программных циклов, при котором в некоторый рабочий регистр загружается число, уменьшаемое затем в каждом проходе цикла на единицу. Так продолжается до тех пор, пока содержимое рабочего регистра не станет равным нулю, что интерпретируется программой как момент выхода из программного цикла. Время задержки при этом определяется числом, загруженным в регистр, и временем выполнения команд, образующих цикл.
Листинг простейшей программы задержки представлен в тябл. I.
Таблица I Простая программа задержки
Продолжение табл. I
Чтобы использовать эту программу, необходимо предварительно в регистр Н занести число, определяющее длительность задержки. Содержимое регистра Н уменьшается до тех пор, пока не достигнет нуля, после чего управление возвращается в вызывающую программу.
Время задержки, полученное при выполнении этой программы, определяется суммарным количеством тактов, необходимых для её выполнения. В наше случае для команды DCR требуется четыре такта; для 0MZ в случае выполнения условия - 10 тактов, в противно* случае-7 тактов; для RET-10 тактов. Тогда для каждого цикле требуется 4 + 10 = 14 тактов.
Для завершения цикла требуется 4 - 7 + 10 = 21 такт.
Принимая во внимание, что такт длится 0,5 икс, уравнение задержки имеет вид
t3= ( N„ - 1)7 + 10,5 (mкс) .
Здесь NH - число, записанное в регистр Н.
Самая длинная задержка этой программы вызывается установкой регистра Н в нуль. Следовательно, максимальная задержка t^= (256 - 1)7 + 10,5 = 1795 (мкс).
Для получения еще более длительной задержки следует использовать команды, воздействующие на пары регистров.
Листинг программы, использующей пары регистров, приведен в табл.2.
Таблица 2 Программа задержки
Время задержки, полученное при выполнении этой программы, определяется по формуле:
Здесь NBC - начальное содержимое пары регистров В, С, Максимально возможная задержка будет получена, если в регистры первоначально занести нули:
В табл. 3 приведен листинг программы, формирующей звуковой сигнал.
Таблица 3 Формирование звукового сигнала
Продолжение та,л. 3
Программируя описанным способом частоты звуковых сигналов, а также их длительности и паузы между ними, можно запрограммировать МП на воспроизведение музыкального произведения.
В табл. 4 представлен листинг программы, синтезирующей музыкальное произведение.
Таблица 4
Программа синтеза музыкального произведения
Продолжение табл. 4
Таблица 5
Массив НОТ
Продолжение табл. 5
Монитор "Микролаб" содержит программу ЗЕЕР (Адрес 0350), генерирует непрерывистый звуковой сигнал.
Подпрограммы задержек могут быть использованы и в программах формирования световых эффектом Б.
Рассмотрим описание программы "Бегущие огни".
Индикаторы выходного порта В (светодиоды) МЛУ "Микролаб" используются как имитаторы "Бегущего огня". Программа последовательно осуществляет следующие операции:
1) включение светодиод» 1,4,7} остальные погашены;
2) формирование длительности горения установленных светодиодов;
3) включение светодиодов 2,5,8; остальные погашены;
4) формирование длительности горения установленных светодиодов;
5) включение светодиодов 3,6; остальные погашены;
6) формирование длительности горения установленных светодиодом;
7) повторение пунктов 1-6.
В табл. 6 представлен листинг программы "Бегущие огни".
Программа последовательно загружает в регистр А коды выходных индикаторов: 92(10010010), 49(01001001), 24(00700100). При этом логическим "I" в кодах соответствуют горящие светодиоды,а логически.) "0" – погашенные
Таблица 6
Программа "Бегущие огни"
Продолжение табл. 6
В данной программе задержка большой длительности (до 201 с) генерируется при пямоии вложенных циклов. Для получения такой задержки организован счетчик в регистре 3) . Число, первоначально записанное в регистр D , определяет, сколько рьз выполнится внутренний цикл (задержка 0:786 с). Так как в регистр!) можно загрузить число 256, то максимальная задержка, полученная таким образом, равна 256 х 0,786 = 201 с.
Задание для домашней подготовки
1. Ознакомьтесь с алгоритмами формироьания временных задержек.
2. Ознакомьтесь с принципом формирования звукового сигнала в МПУ "Микролаб".
3. Изучите группу логических команд и команды условной передачи управления.
4. Изучите команд"! косвенной адресации.
5. Разработайте программу временной задержки; время задержки определите из формулы t = 500 х NB(мкс), где We-номер Вашего варианте.
6. Используя подпрограмму ВЕЕР и разработанную программу временной задержки, разработайте программу, формирующую последовательность прерывистых сигналов.
7. При разработке различных автоматизированных систем управления машинами и технологическими процессами на базе микропроцессорных устройств часто возникает необходимость формирования последовательности
импульсных сигналов с изменяемыми длительностью и скважностью (рис.2).
Имитируя срабатывание исполнительного механизма "зажиганием" соот-ветствующего светодиода выходного устройства "Микролаб", разработайте алгоритм и программу генерации последовательности импульсов, Bapvu HTU домашних заданий представлены в табл.7. При разработке программы учтите, что наиболее целесообразно длительности задержек хранить в памяти в виде массива чисел, а сканирование массивов осуществить с исполь зованием команд косвенно-регистровой адресации.
Таблица 7
Варианты домашних заданий
Программа лабораторной работы
Задание I. Проведите эксперимент с программой из табл. 3.
1. Начните выполнение программы с адреса 8000.
2. Измените содержимое ячейки 6005 в сторону уменьшения, а затем увеличения.
3. Измените скважность импульсов на выходе 30 порта В.
4. Для организации задержки используйте программу монитора, начинающуюся с адреса 039?.
Задание 2. Проведите эксперимент с программой из табл. 4.
1. Начните выполнение программы с адреса 8000.
2. Незначительно измените содержимое ячейки 8001, а затем 8025.
3. Скорректируйте программу таким образом, чтобы мелодия звучала
Непрерывно
4. Подбирая элементы массива НОТ, запрограммируйте другую мелодию.
Задание 3. Проведите эксперимент с программой из табл. 6.
1. Начните выполнение программы о адресе 8000.
2. Варьируя величины временных задержек, измените скорость "бегущего огня".
3. Скорректируйте программу таким образом, чтобы изменилось направ-ления движения "бегущего огня".
Задание 4. Самостоятельно исследуйте программы, разработанные дома.
Содержание отчета
1. Схема формирования звукового сигнала.
2. Алгоритма и программы временных задержек.
3. Алгоритмы, Слок-схемы и программы домашнего задания.
Задания для самопроверки
1. В чем состоит принцип формирования звуковых сигналов различной частоты в МПУ "Минролаб"?
2. Поясните алгоритм формирования задержки.
3. Как рассчитать время задержки ?
4. Поясните способ формирования задержек переменной длительности.
5. Как будет выполняться программа из табл. 4, если вместо команда EST iприменить команду HUT ?
Список рекомендуемой литературы
1. Валашой Е.П., Пузанков Д. В. Микропроцессоры и микропроцессорные системы. -М.:Радио и связь,1981.-376 с.
2. Шаньгин З.Ф., Костин А.Е. Микропроцессоры. Организация вычислительных процессов на микро-ЭВМ / Под ред. Л.Н.Преенухина.- М.: Высш. am. 1984.-119 с.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ 29
'•ФОРМИРОВАНИЕ ЗВУКОВЫХ СИГНАЛОВ"
1С КУРСУ "ПРОГРАММИРОВАНИЕ И ПРИМЕНЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ
И МИ1{РОПРОЦЕССОРНОЙ ТЕХНИКИ"
(для студентов всех специальностей и форм обучения)
Составитель Святослав Иванович ЗАЙЦЕВ
Редактор О. //. Самар
Техн. редактор В. Л'. Колодвева
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.