Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
Карта сайта | Пишите нам | В избранное | eng     

Внимание! У нас изменились номера телефонов. Звоните:
(495) 638-88-00, (499) 940-95-75, факс (499) 735-04-91;
+7(909) 638-88-00 и +7(903) 530-10-01 (Билайн).
       о фирме        электроника     обратная связь

Микроэлектронные проекты. Владислав Мирский. Пианино.

С помощью данного синтезатора можно имитировать игру пианино в пределах одной октавы. 7 кнопок играют роль клавиш, каждая из которых соответствует своей ноте. Если нажаты сразу несколько кнопок, то частота звучания будет соответствовать среднеарифметической частоте нажатых клавиш. Во время игры мелодия записывается в EEPROM, и при нажатии специальной кнопки можно ее прослушать.


Электрическая принципиальная схема

Проект основывается на микроконтроллере PIC16F876. В качестве генератора частоты используется режим широтно-импульсной модуляции модуля CCP. Отсчет времени звучания ведется с помощью таймера TMR0. Во время работы постоянно сканируется состояние порта В, и если оно изменилось (какая-либо кнопка нажата или отпущена), то в соответствии с новой комбинацией клавиш меняется и частота звучания. Также состояние порта В все время выводится на светодиоды, которые подключены к порту А. Пока есть свободное место для записи в EEPROM, включен светодиод VD8. При нажатии кнопки К8, устройство переходит в режим воспроизведения и проигрывает записанную мелодию. Во время воспроизведения также включен светодиод VD8. В качестве динамика можно использовать 0.25ГД-19 8Ом.

Блок-схема программы

Рассмотрим алгоритм работы синтезатора: после конфигурации портов и регистров устройство ожидает нажатия какой-либо клавиши. После нажатия сохраняется значение таймера. Оно не играет роли, если это нажатие было первым. Затем сохраняется значение порта В. Если была нажата кнопка воспроизведения, то начнется проигрывание ранее записанной мелодии.
Если же была нажата одна (или несколько) клавиша, которая соответствует какой-либо ноте, то дальше работа устройства пойдет по алгоритму записи. Если есть свободное место в EEPROM, то туда будет записана длительность звучания предыдущей частоты (значение таймера) и новое состояние порта В. Если же свободного места больше нет, то светодиод VD8 гаснет и выставляется флаг “конец записи”, т.е. подпрограмма записи в EEPROM работать не будет. Затем определяется какие клавиши были нажаты и происходит суммирование их частот. Потом данная сумма делится на количество нажатых клавиш. Таким образом, находится среднеарифметическое значение новой частоты. Затем происходит сброс таймера, т.е. начало счета длительности звучания новой частоты и вызывается подпрограмма записи в EEPROM. Данная частота будет выводиться на динамик пока не произойдет следующее нажатие клавиш. Если произошло переполнение таймера, то генерируется прерывание. В подпрограмме прерываний также записывается в EEPROM состояние порта В, а в ячейку для длительности значение H’FF’ (переполнение таймера).
При воспроизведении сначала из EEPROM считывается количество комбинаций нажатых клавиш. Затем устанавливается флаг “воспроизведение”. Он нужен для подпрограммы прерываний. Затем искусственным путем вызывается прерывание. В начале подпрограммы прерываний при воспроизведении идет проверка на окончание, т.е. вся мелодия прозвучала или нет. Затем считывается комбинация нажатых клавиш и определяется новая частота. Потом считывается время звучания новой частоты и запись ее в таймер. При выходе из подпрограммы прерываний происходит зацикливание и ожидается переполнение таймера, которое вызовет новое прерывание, а следовательно, будет новая частота и новая длительность звучания.

На сайте www.picro.narod.ru вы можете взять файл piano.zip , в котором находятся: piano.hex - файл-прошивка для микроконтроллера; piano.asm - файл программы MpLab с подробнейшими комментариями; piano.sch и piano.pcb - соответственно принципиальная схема и печатная плата в формате AСCEL EDA.

автор пректа: Владислав Мирский

 Разместите Ваш проект у нас на сайте и его смогут увидеть сотни посетителей в день. Ваши проекты присылайте вебмастеру.
Правила оформления проектов
  1. Необходимо наличие схемы, описания устройства и т.д. (для отдельных проектов - драйвера, программное обеспечение и их описание)
  2. Схемы и другие картинки должны быть в форматах .jpg или.gif. К ним обязательно должны идти подписи, поясняющие, что на данной схеме (картинке) изображено.
  3. Описание устройства - в форматах .doc, .txt или .html.
  4. Проект не должен нарушать чьих-либо авторских прав.
Ваши проекты присылайте вебмастеру
Приглашаем специалистов
В России кризис и увольнения персонала, а в Телесистемах, как обычно, не так как у всех: мы расширяем деятельность, набираем новых сотрудников и ищем новых партнеров.
Изделия для разработчиков
Программатор «PICPROG» «PICPROG» - универсальный промышленный программатор.
Копировщик PIC16x8x Копировщик PIC16x8x - тиражирование в автономном режиме.
Наши телефоны: (495) 638-88-00, (499) 940-95-75, факс (499) 735-04-91, мобильные: (903) 530-10-01 и (909) 638-88-00 (БиЛайн).
E-mail:

Copyright © ООО "Телесистемы", 1997 — 2024    Копируйте на здоровье! За ссылку на www.telesys.ru мы вам будем очень признательны.

Rambler's Top100