рефераты рефераты
Главная страница > Дипломная работа: Разработка музыкального звонка с двумя режимами работы: автономным и от сети  
Дипломная работа: Разработка музыкального звонка с двумя режимами работы: автономным и от сети
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Дипломная работа: Разработка музыкального звонка с двумя режимами работы: автономным и от сети

Для справки:

Таблица 2.2 - Кодирование музыкальных длительностей

Код Длительность Коэффициент деления
0 1 (целая) 64
1 1/2(половинная) 128
2 1/4 (четверть) 256
3 1/8 (восьмая) 512
4 1/16 (шестнадцатая) 1024
5 1/32 (тридцать вторая) 2048
6 1/64 (шестьдесят четвертая) 4096

Кроме нот, любая мелодия обязательно содержит музыкальные паузы.

Определение. Паузы — это промежутки времени, когда ни один звук не звучит. Длительность музыкальных пауз принимает точно такие же значения, как и длительность нот.

В связи с этим удобно представить паузу как еще одну ноту. Ноту без звука. Такой ноте логично присвоить нулевой код.

Кодируем мелодии.

Для экономии памяти удобнее каждую ноту кодировать одним байтом. Договоримся, что три старших бита мы будем использовать для кодирования длительности ноты, а оставшиеся пять битов — для кодирования ее тона. Пятью битами можно закодировать до 32 разных нот, что вполне хватит для электромузыкального звонка.

Итак, если использовать приведенный выше способ кодирования, то код ноты ля первой октавы длительностью 1/4 в двоичном виде будет равен:

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

Цепочка таких кодов и будет представлять собой закодированную мелодию. По условиям задачи наш электромузыкальный звонок должен уметь воспроизводить семь разных мелодий. Коды всех семи мелодий мы разместим в программной памяти микроконтроллера.

Как определить конец каждой мелодии? Для того, чтобы компьютер знал, где заканчивается каждая мелодия, используем код 255 в качестве признака конца.

Теперь нам нужно придумать, как микроконтроллер будет находить начало каждой мелодии. Все мелодии имеют разную длину, а в памяти они будут записаны одна за другой. Поэтому адрес начала каждой мелодии зависит от длины всех предыдущих. Удобнее всего просто по факту определить адрес начала каждой мелодии и поместить все семь адресов в специальную таблицу.

Кроме этой таблицы нам еще понадобится таблица коэффициентов деления для всех 32 нот и таблица, хранящая константы задержки для всех используемых нами музыкальных длительностей.

Алгоритм работы электромузыкального звонка (Рисунок 2.5):

1. Просканировать и определить номер нажатой кнопки.

2. Извлечь из таблицы начал мелодий значение элемента, номер которого соответствует только что определенному номеру нажатой кнопки. Это значение будет равно адресу в программной памяти, где начинается нужная нам мелодия.

3. Начать цикл воспроизведения мелодии. Для этого поочередно извлекать коды нот из памяти, начиная с адреса, который мы определили в пункте 2 алгоритма.

4. Каждый код ноты разложить на код тона и код длительности.

5. Если код тона равен нулю, отключить звук и перейти к формированию задержки (к п. 9 настоящего алгоритма).

6. Если код тона не равен нулю, извлечь из таблицы коэффициентов деления значение элемента с номером, равным коду тона.

7. Записать коэффициент деления, который мы нашли в пункте 6 настоящего алгоритма, в регистр совпадения таймера Т1.

8. Включить звук (подключить вывод ОС1А к выходу таймера Т1).

9. Извлечь из таблицы длительностей задержки значение элемента с номером, равным коду длительности.

10. Сформировать паузу с использованием константы задержки, которую мы нашли в пункте 9 настоящего алгоритма.

11. По окончании паузы выключить звук (отключить ОС1А от выхода таймера).

12. Повторять цикл (пункты 4—11 настоящего алгоритма) до тех пор, пока нажата соответствующая кнопка.

13. Если очередной код ноты окажется равным 255, перейти к началу текущей мелодии, то есть вернуться к п. 3 настоящего алгоритма



Рисунок 2.5 – Алгоритм прогаммы для электромузыкального звонка


2.6 Разработка программного обеспечения микроконтроллера

Возможный вариант программы на языке Ассемблер приведен в листинге 1 (См. Приложение А).

2.6.1 Описание программы

Описание программы удобнее начать с конца. Начиная со строки 136 программы располагается описание так называемых таблиц данных. На самом деле каждая из этих "таблиц" представляет собой цепочку кодов, записываемых в программную память микроконтроллера и предназначенных для кодирования того либо иного вида данных. Для описания этих данных используются как операторы db, так и операторы dw.

Первая таблица содержит коэффициенты задержки для формирования всех вариантов музыкальной длительности. Таблица начинается с адреса, соответствующего метке tabz. Вся таблица занимает одну строку программы (строка 136). Так как в нашей программе мы будем применять лишь семь вариантов длительности, таблица имеет 7 элементов. Каждый элемент записывается в память как двухбайтовое слово.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22

рефераты
Новости