бесплано рефераты

Разделы

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

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

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

РЕФЕРАТ

Пояснительная записка к дипломному проекту: 88 страниц, 15 рисунков, 21 таблица, 24 источника, 5 приложений, 3 листа чертежей формата А1.

Объект исследований: разработка музыкального звонка с двумя режимами работы: автономный и от сети.

Предмет исследования: электромузыкальный звонок.

В первом разделе рассмотрены общие принципы разработки устройств на микроконтроллерах.

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

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

В четвертом разделе проведены расчеты вентиляции, природного и искусственного освещения, уровня шума. Полученные значения сопоставлены с нормативными.

Данное устройство может быть рекомендовано к внедрению в производство.

АЛГОРИТМ, БЛОК ПИТАНИЯ, КНОПКА, МИКРОКОНТРОЛЛЕР, МИКРОПРОЦЕССОРНАЯ СИСТЕМА, ПРОГРАММА, СВЕТОДИОД


СОДЕРЖАНИЕ

ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ 3

ВВЕДЕНИЕ

1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ

2 РАЗРАБОТКА МУЗЫКАЛЬНОГО ЗВОНКА С ДВУМЯ РЕЖИМАРАБОТЫ: АВТОНОМНЫЙ И ОТ СЕТИ

2.1 Постановка задачи

2.2 Разработка структурной схемы устройства и функциональной спецификации

2.3 Аппаратные средства микроконтроллеров серии ATtiny2313

2.4 Разработка функциональной схемы устройства

2.5 Разработка алгоритма работы устройства        

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

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

2.6.2 Процедура вычисления адреса

2.6.3 Текст программы

2.6.4 Особенности программы

2.6.5 Подпрограмма формирования задержки

2.6.6 Программа на языке СИ

2.6.7 Описание программы (листинг 2

2.7 Выбор, описание и расчеты элементной базы

2.8 Разработка схемы принципиальной

3 ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ОБЪЕКТА РАЗРАБОТКИ

3.1 Расчет расходов на ПО для микроконтроллера

3.2 Расчет расходов на создание ПО

3.3 Расчет стоимости разработки конструкторской документации и сборки устройства

3.4 Расчет расходов на стадии производства изделия

3.5 Анализ устройств-аналогов

4 ОХРАНА ТРУДА

4.1 Требования к производственным помещениям

4.1.1 Окраска и коэффициенты отражения

.4.1.2 Освещение

4.1.3 Параметры микроклимата

4.1.4 Шум и вибрация

4.1.5 Электромагнитное и ионизирующее излучения

4.2 Эргономические требования к рабочему месту

4.3 Режим труда

4.4 Расчет освещенности

4.5. Расчет вентиляции

4.6 Расчет уровня шума

ВЫВОДЫ

ПРИЛОЖЕНИЯ


ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ,

ЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ

АЦП – аналого-цифровой преобразователь

КМОП – комплементарная логика на транзисторах металл-оксид-полупроводник

МК - микроконтроллер

МПС – микропроцессорная система

ЦПУ – центральное процессорное устройство

ШИМ – широтно импульсная модуляция


ВВЕДЕНИЕ

Разработка систем управления и контроля с использованием однокристальных микроконтроллеров в настоящее время переживает настоящий бум. Системы на базе микроконтроллеров используются практически во всех сферах жизнедеятельности человека, и каждый день появляются все новые и новые области применения этих устройств. В последнее время в связи с бурным развитием электроники и схемотехники расширились возможности и самих микроконтроллеров, позволяющие выполнять многие задачи, ранее недоступные для реализации, такие, например, как обработка аналоговых сигналов. Одним из наиболее ранних микроконтроллеров, появившихся на рынке, является микроконтроллер ATtiny, разработанный фирмой Intel более двадцати лет назад. Несмотря на столь приличный возраст, классический ATtiny и его клоны в настоящее время остаются одними из наиболее популярных при разработке систем управления и контроля. Хорошо продуманная архитектура и интуитивно понятная система команд оказывают решающее влияние на выбор многих разработчиков аппаратно-программных систем.

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

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

Тема данной работы - «Разработка музыкального звонка с двумя режимами работы: автономным и от сети», которая является предметом исследования.

Объектом исследования является устройство (бытовой электромузыкальный звонок), предназначенное для воспроизведения ранее запрограммированных мелодий, при нажатии и удержании кнопки. Устройство должно содержать минимум компонентов, быть простым в изготовлении и эксплуатации, иметь возможность работать в режимах: автономном и от сети.

Данная тема является актуальной, т.к. электромузыкальные звонки пользуются повышенным спросом у населения.


РАЗДЕЛ 1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ

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

Перед разработчиком МПС стоит задача реализации полного цикла проектирования, начиная от разработки алгоритма функционирования и заканчивая комплексными испытаниями в составе изделия. Методология проектирования контроллеров может быть представлена так, как показано на рис. 1.1.

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

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

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

Рисунок 1.1- Основные этапы разработки контроллера

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

- разрядность;

- быстродействие;

- набор команд и способов адресации;

- требования к источнику питания и потребляемая мощность в различных режимах;

- объем ПЗУ программ и ОЗУ данных;

- возможности расширения памяти программ и данных;

- наличие и возможности периферийных устройств, включая средства поддержки работы в реальном времени (таймеры, процессоры событий и т.п.);

- возможность перепрограммирования в составе устройства;

- наличие и надежность средств защиты внутренней информации;

- возможность поставки в различных вариантах конструктивного исполнения;

- стоимость в различных вариантах исполнения;

- наличие полной документации;

- наличие и доступность эффективных средств программирования и отладки МК;

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

Список этот не является исчерпывающим.

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


РАЗДЕЛ 2 РАЗРАБОТКА МУЗЫКАЛЬНОГО ЗВОНКА С ДВУМЯ РЕЖИМАМИ РАБОТЫ: АВТОНОМНЫЙ И ОТ СЕТИ

2.1 Постановка задачи

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

Питание данного устройства должно осуществляться в двух режимах: автономно и от сети.

Данное устройство рекомендуется использовать как электромузыкальный звонок.

2.2 Разработка структурной схемы устройства и функциональной

спецификации

Структурная схема разрабатываемого электромузыкального звонка приведена на рис. 2.1.


Подпись: Мелодия 4
S4

S8

Подпись: Мелодия 5
S5




 Звуковой излучатель


220 В

Рисунок 2.1- Структурная схема электромузыкального звонка

Функциональная спецификация представляет собой:

1.  Входы

а. 7 кнопок выбора мелодий (S1-S7);

b. Кнопка запуска электромузыкального звонка (S8);

с. Источник бесперебойного электропитания звонка (ИП).

2.  Выходы

а. Электронный ключ (Э/кл);

b. Звуковой динамик (Звуковой излучатель).

3.  Функции

а. Запись мелодии в память, при нажатии кнопки S8;

b.  Воспроизведение мелодии из памяти;

c.  Осуществление бесперебойного электропитания в двух режимах: автономном и от сети.

2.3 Аппаратные средства микроконтроллеров серии ATtiny2313

В разработке электромузыкального звонка предлагается использовать, широко распространенный, относительно недорогой и надежный в эксплуатации 8 битный AVR микроконтроллер серии ATtiny2313 с 2 КБ программируемой в системе Flash памяти.

ATtiny2313 - низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny2313 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.

ATtiny2313 имеет следующие характеристики: 2 КБ программируемой в системе Flash память программы, 128 байтную EEPROM память данных, 128 байтное SRAM (статическое ОЗУ), 18 линий ввода - вывода общего применения, 32 рабочих регистра общего назначения, однопроводный интерфейс для встроенного отладчика, два гибких таймера/счетчика со схемами сравнения, внутренние и внешние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового условия, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, но ОЗУ, таймеры/счетчики и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует. Это позволяет очень быстро запустить микропроцессор, сохраняя при этом в режиме бездействия мощность.

Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс или обычным программатором энергонезависимой памяти. Объединив в одном кристалле 8- битное RISC ядро с самопрограммирующейся в системе Flash памятью, ATtiny2313 стал мощным микроконтроллером, который дает большую гибкость разработчика микропроцессорных систем.

ATtiny2313 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.

Характеристики микроконтроллера ATtiny2313

AVR RISC архитектура

AVR - высококачественная и низкопотребляющая RISC архитектура

120 команд, большинство которых выполняется за один тактовый цикл

32 8 битных рабочих регистра общего применения

Полностью статическая архитектура

ОЗУ и энергонезависимая память программ и данных

2 КБ самопрограммируемой в системе Flash памяти программы, способной выдержать 10 000 циклов записи/стирания

128 Байт программируемой в системе EEPROM памяти данных, способной выдержать 100 000 циклов записи/стирания

128 Байт встроенной SRAM памяти (статическое ОЗУ)

Программируемая защита от считывания Flash памяти программы и EEPROM памяти данных

Характеристики периферии:

Один 8- разрядный таймер/счетчик с отдельным предделителем

Один 16-разрядный таймер/счетчик с отдельным предделителем, схемой сравнения, схемой захвата и двумя каналами ШИМ

Встроенный аналоговый компаратор

Программируемый сторожевой таймер со встроенным генератором

USI - универсальный последовательный интерфейс

Полнодуплексный UART

Специальные характеристики микроконтроллера :

Встроенный отладчик debugWIRE

Внутрисистемное программирование через SPI порт

Внешние и внутренние источники прерывания

Режимы пониженного потребления Idle, Power-down и Standby

Усовершенствованная схема формирования сброса при включении

Программируемая схема обнаружения кратковременных пропаданий питания

Встроенный откалиброванный генератор

Порты ввода - вывода и корпусное исполнение

18 программируемых линий ввода - вывода

20 выводной PDIP, 20 выводной SOIC и 32 контактный MLF корпуса

Диапазон напряжения питания:

от 1.8 до 5.5 В

Рабочая частота:

0 - 16 МГц

Потребление

Активный режим:

300 мкА при частоте 1 МГц и напряжении питания 1.8 В

20 мкА при частоте 32 кГц и напряжении питания 1.8 В

Режим пониженного потребления

0.5 мкА при напряжении питания 1.8 В

Блок- схема ATtiny2313 представлена на рисунке 2.2.

Рисунок 2.2 - Блок-схема микроконтроллера ATtiny2313


Расположение выводов МК ATtiny2313 приведено на рисунке 2.3.

Рисунок 2.3 - Расположение выводов микроконтроллера ATtiny2313

2.4 Разработка функциональной схемы устройства

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

При нажатии на кнопку S8 (дверная кнопка) и любой выбранной кнопке S1-S7 (кнопки выбора мелодии) производится запуск работы устройства, собранного на МК ATtiny 2313. Кварцевый резонатор служит для стабилизации частоты кварцевого генератора. Электронный ключ служит для развязки выхода микроконтроллера с низкоомным входом громкоговорителя. Источник питания служит для электропитания всего устройства. Источник питания работает в двух режимах: от сети (схема бестрансформаторного питания) и автономно (от элементов постоянного тока).

Кнопки

Выбора

мелодии

 

Кварцевый

резонатор

 
                                   

Эл. ключ

 

20

Источник питания

 
 


Рисунок 2.4 - Функциональная схема электромузыкального звонка

2.5 Разработка алгоритма работы устройства

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

Известно, что весь музыкальный ряд делится на октавы. В современном музыкальном ряду каждая октава делится на 12 нот. Семь основных нот и пять дополнительных.

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

Для нас же важно то, что коды всем этим нотам мы должны присваивать в порядке возрастания частоты. Начнем мы с ноты «До» первой октавы. Для электромузыкального звонка более низкие ноты не нужны. В таблице 2.1 показаны коды для всей первой октавы. Следующая, вторая октава продолжает первую и по кодировке, и по набору частот. Так нота «До» второй октавы будет иметь код 13, а частоту f12= fo2. А нота «Ре» второй октавы будет иметь код 14 и частоту f13=f1 2. И так далее.

Музыкальная длительность тоже легко кодируется. В музыке применяют не произвольную длительность, а длительность, выраженную долями от целой (см. таблицу 2.2). В зависимости от темпа реальная длительность целой ноты меняется. Для сохранения мелодии необходимо соблюдать лишь соотношения между длительностями. Поэтому нам необходимо закодировать лишь семь вариантов длительности. Присвоим им коды от 0 до 6. Например так, как это показано в графе «Код» таблицы 2.2. Назначение графы «Коэффициент деления» мы пока опустим.

Таблица 2.1- Кодировка нот первой октавы

Код Нота Частота Код Нота Частота
1 До

fo

7 Фа#

f6=f5/K

2 До#

f1=fo/K

8 Соль

f7=f6/K

3 Ре

f2=f1/K

9 Соль*

f8=f7/K

4 Ре#

f3=f2/K

10 Ля

f9=f8/K

5 Ми

f4=f3/K

11 Ля#

f10=f9/K

6 Фа

f5=f4/K

12 Си

f11=f10/K

Для справки:

Таблица 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 элементов. Каждый элемент записывается в память как двухбайтовое слово.

В строках 137—140 описывается таблица коэффициентов деления для всех нот. Начало таблицы соответствует метке tabkd. Каждый элемент этой таблицы также имеет размер в два байта. Первый элемент таблицы равен нулю. Это неиспользуемый элемент. Ноты номер ноль у нас не существует. Ноль мы использовали для кодирования паузы.

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

В строках 143—200 описана таблица мелодий. Вернее, это не одна таблица, а семь таблиц (своя таблица для каждой из мелодий). Каждая таблица помечена своей отдельной меткой (те 11, те 12 — те 17). Значение каждой метки — это адрес начала соответствующей мелодии. Каждое значение таблицы мелодий записывается в память в виде одного байта. Поэтому все строки, кроме последней, для каждой таблицы имеют четное число значений.

В строках 141,142 описана таблица начал всех мелодий. Начало этой таблицы отмечено меткой tabm. Таблица используется для того, чтобы программа могла найти адрес начала нужной мелодии по ее номеру. В качестве элементов массива выступают удвоенные значения меток mell, mel2 —mel7. Применение удвоенных значений обусловлено необходимостью перевода адресов из основной адресации в альтернативную. При трансляции программы вместо меток в память будут записаны конкретные адреса.

Страницы: 1, 2, 3, 4, 5, 6


© 2010 САЙТ РЕФЕРАТОВ