Автор: Пользователь скрыл имя, 14 Марта 2012 в 18:49, курсовая работа
Целью данной разработки является создание программы, которая будет являться электронной моделью музыкальной шкатулки, воспроизводящей MIDI мелодии, т.к. учебный стенд имеет плоский синтезатор. А также освоение архитектуры и методов проектирования на базе микроконтроллера ADuC812 с ядром MCS–51.
Для разработки музыкальных продуктов программист должен быть музыкантом, акустиком и радистом одновременно или нужна группа, объединяющая таких специалистов и, что очень важно, говорящих на одном языке.
ВВЕДЕНИЕ 3
ТЕХНИЧЕСКОЕ ЗАДАНИЕ 5
ВВЕДЕНИЕ 6
1 ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ 6
2 НАЗНАЧЕНИЕ РАЗРАБОТКИ 6
3 ТРЕБОВАНИЯ К РАЗРАБОТКЕ 6
3.1 Требования к функциональным характеристикам 6
3.2 Нижний уровень 7
3.3 Верхний уровень 9
3.4 Требования к надежности 10
3.5 Требования к информационной и программной совместимости 11
3.6 Требования к условиям эксплуатации 13
3.7 Требования к составу и параметрам технических средств 13
4 РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ 14
5 РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ 15
6 ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ 16
7 ЭТАПЫ И СТАДИИ ПРОЕКТИРОВАНИЯ 16
8 ОПИСАНИЕ СТЕНДА SDK 1.1. 17
9 ПРИНЦИП ФОРМИРОВАНИЯ ЗВУКА 20
10 ОПИСАНИЕ ПРОГРАММЫ 21
10.1 Режим начальной инициализации 21
10.2 Основной режим работы 23
ПРИЛОЖЕНИЕ 1 28
ПРИЛОЖЕНИЕ 2 29
DB 0fdh ;до#
DB 0fdh ;ре
DB 0fdh ;ре#
DB 0fdh ;ми
DB 0fdh ;фа
DB 0fdh ;фа#
DB 0fch ;соль
DB 0fch ;соль#
table2:
DB 47h
DB 2dh
DB 11h
DB 0f4h
DB 0d5h
DB 0b3h
DB 91h
DB 6bh
DB 4ah
DB 1bh
DB 0efh
DB 0c1h
С верхнего уровня на нижний должен передаваться поток данных, который представлен в виде последовательности пакетов. Каждый пакет имеет следующую структуру:
Заголовок (AC) (1-байт) |
Данные (10-байт) |
Контрольная сумма (1 байт) |
Конец (F0) (1-байт) |
Рис.7 Визуальное представление протокола
Пакет данных начинается с заголовка (АС), который предназначен для определения начала пакета. Если полученный байт равен (АС), то все последующие байты являются данными для воспроизведения мелодии.
Структура данных представляет собой последовательность из пар символов. Первый символ пары отвечает за длительность, второй - за частоту ноты. Количество данных в одном пакете - 10 байт, т.е. пять нот мелодии. Символами могут быть цифры от 0 до 9, а также знаки “:” и “;”.
Контрольная сумма - проверяет надежность передачи данных. Она должна сравнивать все ASCII коды символов данных с помощью логической операции XOR, получая тем самым контрольную сумму, которая в последующем идет на отправление. Подсчет контрольной суммы производится после принятия каждого символа на нижнем уровне. После этого полученные контрольные суммы сравниваются и если результаты равны, то данные приняты правильно.
Конец (F0) - обозначает конец пакета. Во время принятия данных пакета, должно производиться сравнение каждого принятого байта с (F0). Если принятый байт равен (F0), то этот байт является концом пакета данных.
Разрабатываемое устройство состоит из нескольких блоков (блока управления, исполнительного блока, контролирующего блока), что обеспечивает его ремонтопригодность и быстрое тестирование. Система управления должна работать в стационарном режиме при соблюдении следующих требований:
Система должна функционировать на микроконтроллере SDK 1.1., подключенном к IBM PC совместимому компьютеру со следующими характеристиками:
Структурная схема отображает основные блоки внешних устройств, которые подключаются к МП. Схема представлена на рис. 8.
Рис.8 Структурная схема
Структурная схема устройства состоит из следующих блоков:
Принципиальная схема устройства представлена в Приложении 1.
Функциональная схема отображает основные узлы микропроцессора (МП) и внешних устройств, которые предполагается подключить к МП, а так же количество передаваемых бит. Схема представлена на рис. 9.
Рис.9 Функциональная схема
Функциональная схема отображает принцип работы данного устройства. На данной схеме отображены основные блоки микроконтроллера и основные блоки, обеспечивающие интерфейс контроллера с устройствами ввода/вывода.
В данной разработке
применяется микроконтроллер
Три внутренние двунаправленные шины связывают между собой все основные узлы и устройства, шина адреса позволяет контролеру программно обращаться к каждому из устройств, шина данных передает устройствам необходимые данные, а шина управления позволяет управлять подключенными устройствами.
Программируемые 16-битные таймер/счетчики используются в качестве таймеров или счетчиков внешних событий, при работе устройства в основном режиме работы.
Датчик – устройство,
которое принимает и
Для адресации устройств ввода/вывода, в данной системе используется дешифратор адреса, который адресует регистры, хранящие данные, поступающие с датчиков и контролера. Регистры подключены к шине ША (шина адреса), ШД (шина данных) получают или передают данные , при этом регистры, передающие данные на шину имеют три состояния выхода. Если такие регистры адресованы, то передача данных с них на шину разрешена, во всех остальных случаях эти регистры находятся в высокоимпедансном состоянии.
Последовательный интерфейс RS232 служит для обеспе6чения связи устройства с ЭВМ, и обеспечивает передачу данных с контроллера на ЭВМ
Данный продукт распространяется абсолютно бесплатно, поэтому для него не нужно рассчитывать технико-экономические показатели.
Таблица 1
Стадии разработки |
Содержание работ |
Сроки |
Результат |
1. Системный анализ |
Разработка и утверждение |
15.01-15.02 |
Техническое задание |
2. Проектирование |
Создание алгоритмов работы программы |
15.02-15.03 |
Глава в пояснительную записку |
3. Реализация и тестирование |
Разработка программы, тестирование |
15.03-15.04 |
Готовая программная реализация |
4. Документирование |
Окончательное оформление пояснительной записки |
15.04-27.04 |
Пояснительная записка |
В состав учебного стенда SDK 1.1 входят:
• микроконтроллер ADuC812BS;
• внешняя EEPROM объемом 256 байт;
• клавиатура АК1604A-WWB фирмы ACCORD;
• ЖКИ WH1602B-YGK-CP фирмы Winstar Display;
• часы реального времени PCF8583;
• 128К внешней SRAM с возможностью расширения до 512К;
• набор сигнальных светодиодов (8 шт.).
Структура стенда с описанием его блоков представлена на рис. 10 и в таблице 2.
Рис. 10 Структура стенда
Таблица 2
Элемент |
Описание |
LCD |
Жидкокристаллический |
KEYBOARD |
Матричная клавиатура АК1604А-WWB |
Z1 |
Звуковой пьезокерамический |
SW2 |
Кнопка сброса RESET |
J4 |
Разъем питания 10-14В типа «JACK», полярность неважна |
JDP1 |
Разъем последовательного |
J1 |
Выводы каналов АЦП и ЦАП |
SW1 |
Переключатель каналов ЦАП/АЦП |
J3 |
16 линий параллельного порта |
SW3 |
Набор переключателей, замыкающих выводы J3 на корпус |
J2 |
Выводы JTAG-интерфейса ПЛИС MAX |
JP1 |
Перемычка, замыкающая вывод PSEN микроконтроллера AduC812 на корпус |
JP3 |
Разъемы подключения внешней батареи
питания часов реального |
D9-D16 |
Набор сигнальных светодиодов |
Процессор ADuC812 является клоном Intel 8051 со встроенной периферией. Основные характеристики:
• рабочая частота 11.0592МГц;
• 8- канальный 12-битный АЦП со скоростью выборок 200К/С;
• два 12-битных ЦАП (код-напряжение);
• внутренний температурный сенсор;
• 640 байт программируемого FLASH/ЕЕ со страничной организацией (256 страниц по 4 байта);
• 256 байт внутренней памяти данных;
• 16Мб адресное пространство;
• режим управления питанием;
• асинхронный последовательный ввод-вывод;
• I2C интерфейс;
• три 16-битных таймера/счетчика и таймер WatchDog.
Для управления динамиком в программе использованы таймер и регистр ПЛИС ENA (адрес 080004h). 2-4 биты регистр ENA управляют величиной напряжения на динамике, т.е. позволяют задавать громкость звука. Для формирования звука генерируются прямоугольные импульсы с заданным периодом.
Рис. 11 Формирование звука
В программе в функцию Sound для простоты передается значение не периода, а половины периода. Таймер настраивается на частоту 10кГц, т.е. прерывания от таймера приходят с интервалом 0.1 мс. Для генерирования прямоугольных импульсов сначала на динамик подается напряжение и удерживается в течение времени равного половине периода звука (см. рис. 11). Потом в течение такого же промежутка времени на динамике удерживается нулевое напряжение. Исходя из этого, для вычисления частоты генерируемого звука может быть применена следующая формула: Частота = (частота переполнения таймера)/(2*T).
Таким образом, звук с самым высоким тоном будет иметь частоту 10кГц/2=5кГц, звук с самим низким тоном будет обладать частой 10кГц/2*65536 =0.07Гц.
Длительность ноты задается в 10 мс. Минимальное время звучания будет 10мс,
максимальное время звучания 655.36 с.
Проектируемое устройство должно работать в следующих режимах (рис 12):
Рис. 12 Алгоритм главной программы
10.1 Режим начальной инициализации
Предназначен для установки в исходное состояние внутренних переменных (Рис 13): занесения начальных значений в регистры (блок 1), настройки работы таймеров-счетчиков (блок 2), настройки порта на соответствующую скорость с компьютером (блок 3), инициализации дисплея микроконтроллера (блок 4), вывод на ЖКИ сообщение о готовности принятия данных (блок 5).
Рис.13 Алгоритм режима начальной инициализации
10.2 Основной режим работы
Переход в основной режим работы должно осуществляется автоматически после инициализации и вывода сообщения “WAIT” на ЖКИ. В это время, микроконтроллер находится в состоянии ожидания данных (рис. 14). При срабатывании прерывания от порта, принятый байт анализируется. Если он равен «ACh», это означает начало пакета, тогда должен быть выставлен флаг R равный «1», который означает, что все последующие байты являются кодами символов, которые необходимо сохранять в памяти. Если принятый байт равен «F0h» (это означает конец пакета), тогда должна быть проведена проверка на четность принятых байтов. Если же при передаче данных произошла ошибка, то на светодиоды выводится код 10000001.
Если данные приняты правильно, выполняется проверка все ли данные пришли, т.е. принятый байт равен «51h». Если да, то это означает конец принятия данных, на ЖКИ должно появиться сообщение об окончании принятия данных «READ». Если же не все данные еще пришли, то должен быть произведен переход к следующему символу.
Рис.14 Алгоритм передачи и записи данных
После принятия данных, необходимо воспроизвести мелодию. Для этого следует нажать на клавишу «1». При этом программа должна перейти в режим воспроизведения – PLAY, на ЖКИ высвечивается «PLAY» и загораются светодиоды. Во время проигрывания мелодии нажатие любых клавиш должно игнорироваться. По окончанию воспроизведения, можно заново проиграть эту мелодию, для этого необходимо нажать клавишу «1».
Информация о работе Разработка программы воспроизведения мелодии