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

Автор: Пользователь скрыл имя, 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

Работа содержит 1 файл

МУЗ.ШКАТУЛКА.docx

— 808.86 Кб (Скачать)

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), то этот байт является концом пакета данных.  

    1. Требования  к условиям эксплуатации

Разрабатываемое устройство состоит из нескольких блоков (блока  управления, исполнительного блока, контролирующего блока), что обеспечивает его ремонтопригодность и быстрое тестирование. Система управления должна работать в стационарном режиме при соблюдении следующих требований:

    • температура окружающего воздуха 0 – 700С;
    • относительная влажность воздуха  40 - 80 % (при t=300С);
    • атмосферное давление  630 - 800 мм.рт.ст.;
    • напряжение питания  220 В, 50 Гц;
    • диапазон частот вибрации  1 - 3 Гц.
    1. Требования  к составу и параметрам технических  средств

Система должна функционировать  на микроконтроллере SDK 1.1., подключенном к IBM PC совместимому компьютеру со следующими характеристиками:

  • процессор Intel Pentium или совместимый;
  • объем свободной оперативной памяти 6 Мб;
  • объем свободной памяти на жестком диске 1 Мб;
  • стандартный VGA монитор или совместимый;
  • стандартная клавиатура;
  • манипулятор типа «мышь».

 

  1. РАЗРАБОТКА СТРУКТУРНОЙ  СХЕМЫ

Структурная схема отображает основные блоки  внешних устройств, которые подключаются к МП. Схема представлена на рис. 8.

 

Рис.8 Структурная схема

Структурная схема устройства состоит из следующих  блоков:

    1. Микропроцессор (МП);
    2. Блок управления мощностью (БУМ) используется для смены уровня нагрева спиралей конфорок;
    3. ПЛИС – блок, обеспечивающий интерфейс микроконтроллера с ЖКИ, клавиатурой, светодиодной линейкой;
    4. Блок ввода (клавиатура) – блок, предназначенный для управления работой устройства;
    5. Блок индикации:
    • ЖКИ – блок, который предназначен для визуального отображения параметров работы устройства.
    • Светодиодная линейка – блок, предназначенный для отображения параметров работы устройства на светодиодах.

Принципиальная схема  устройства представлена в Приложении 1.

  1. РАЗРАБОТКА  ФУНКЦИОНАЛЬНОЙ СХЕМЫ

Функциональная схема  отображает основные узлы микропроцессора (МП) и внешних устройств, которые  предполагается подключить к МП, а  так же количество передаваемых бит. Схема представлена на рис. 9.

 

Рис.9 Функциональная схема

Функциональная  схема отображает принцип работы данного устройства. На данной схеме  отображены основные блоки микроконтроллера и основные блоки, обеспечивающие интерфейс  контроллера с устройствами ввода/вывода.

В данной разработке применяется микроконтроллер ADuC812. Программно управляемое центральное процессорное устройство (CPU) является ядром системы и под действием команд, записанных в Flash-память (программные инструкции) реализует алгоритм управления. ОЗУ служит для записи, хранения и чтения служебной информации, а также данных поступающих на ЭВМ по последовательному интерфейсу RS-232.

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

Программируемые 16-битные таймер/счетчики используются в качестве таймеров или счетчиков внешних  событий, при работе устройства в  основном режиме работы.

Датчик – устройство, которое принимает и обрабатывает сигналы от внешних источников.

Для адресации устройств  ввода/вывода, в данной системе используется дешифратор адреса, который адресует регистры, хранящие данные, поступающие с датчиков и контролера. Регистры подключены к шине ША (шина адреса), ШД (шина данных) получают или передают данные , при этом регистры, передающие данные на шину имеют три состояния выхода. Если такие регистры адресованы, то передача данных с них на шину разрешена, во всех остальных случаях эти регистры находятся в высокоимпедансном состоянии.

Последовательный интерфейс  RS232 служит для обеспе6чения связи устройства с ЭВМ, и обеспечивает передачу данных с контроллера на ЭВМ

  1. Технико-экономические  показатели

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

  1. Этапы и стадии проектирования

Таблица 1

Стадии разработки

Содержание работ

Сроки

Результат

1. Системный анализ

Разработка и утверждение технического задания на программный продукт, изучение литературы по предметной области

15.01-15.02

Техническое задание 

2. Проектирование

Создание алгоритмов работы программы

15.02-15.03

Глава в пояснительную записку

3. Реализация и тестирование

Разработка программы, тестирование

15.03-15.04

Готовая программная реализация

4. Документирование 

Окончательное оформление пояснительной  записки

15.04-27.04

Пояснительная записка


 

  1. Описание  стенда SDK 1.1.

В состав учебного стенда SDK 1.1 входят:

•    микроконтроллер ADuC812BS;

•    внешняя EEPROM объемом 256 байт;

•    клавиатура АК1604A-WWB фирмы ACCORD;

•   ЖКИ   WH1602B-YGK-CP   фирмы   Winstar Display;

•    часы реального времени  PCF8583;

•   128К внешней SRAM с возможностью расширения до 512К;

•   набор сигнальных светодиодов (8 шт.).

Структура стенда с описанием его  блоков представлена на рис. 10 и в таблице 2.

Рис. 10 Структура стенда 

Таблица 2

Элемент

Описание

LCD

Жидкокристаллический индикатор WH1602B-YGK-CP

KEYBOARD

Матричная клавиатура АК1604А-WWB

Z1

Звуковой пьезокерамический излучатель

SW2

Кнопка сброса RESET

J4

Разъем питания 10-14В типа «JACK», полярность неважна

JDP1

Разъем последовательного порта  стенда

J1

Выводы каналов АЦП и ЦАП

SW1

Переключатель каналов ЦАП/АЦП

J3

16 линий параллельного порта ПЛИС MAX и 4 линии последовательного порта P3 микроконтроллера

SW3

Набор переключателей, замыкающих выводы J3 на корпус

J2

Выводы JTAG-интерфейса ПЛИС MAX

JP1

Перемычка, замыкающая вывод PSEN микроконтроллера AduC812 на корпус

JP3

Разъемы подключения внешней батареи  питания часов реального времени PCF8583

D9-D16

   Набор сигнальных светодиодов


 

Процессор ADuC812 является клоном Intel 8051 со встроенной периферией. Основные характеристики:

•    рабочая частота 11.0592МГц;

•    8- канальный 12-битный АЦП  со скоростью выборок 200К/С;

•    два 12-битных ЦАП (код-напряжение);

•    внутренний температурный  сенсор;

•    640   байт   программируемого   FLASH/ЕЕ   со   страничной   организацией   (256 страниц по 4 байта);

•    256 байт внутренней памяти данных;

•    16Мб адресное пространство;

•    режим управления питанием;

•    асинхронный последовательный ввод-вывод;

•    I2C интерфейс;

•    три 16-битных таймера/счетчика и таймер WatchDog.

 

 

  1. Принцип формирования звука

Для управления динамиком в программе  использованы таймер и регистр ПЛИС 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 с.

 

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

Проектируемое устройство должно работать в следующих режимах (рис 12):

  1. режим начальной инициализации системы;
  2. основной режим работы.

Рис. 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».

Информация о работе Разработка программы воспроизведения мелодии