Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

Шаг 5. Переходим непосредственно к разработке устройств и программ 271 Итак, попробуем создать музыкальное устройство, автоматически воспроизводящее разные мелодии. В предыдущем примере мы научи ­ лись издавать различные музыкальные звуки. Теперь нужно заставить микроконтроллер составлять из этих звуков мелодии. Причем эти мело ­ дии должны быть жестко записаны в память микроконтроллера. Сформулируем задачу следующим образом: «Разработать устройство, предназначенное для воспроизведения простых одноголосых мелодий, записанных в память программ на этапе программирования. Устройство должно иметь семь управляю ­ щих кнопок. Каждой из кнопок должна соответствовать своя мело ­ дия. Мелодия воспроизводится при нажатии и удержании кнопки. При отпускании всех кнопок воспроизведение мелодий прекращается». Схема Неслучайно в условии задачи заложено именно семь кнопок и одно ­ голосые мелодии. Это позволяет использовать для новой задачи схему из предыдущего примера (рис. 5.14). Представим, что контакты, под ­ ключенные к порту PD, — это не датчики, а кнопки управления. Каждая кнопка будет включать одну из семи заложенных в программу мелодий. Воспроизведение мелодий будет происходить при помощи звуковой части схемы (Rl, VT1, VF1). Алгоритм Для начала нам нужно придумать, как мы будем хранить мелодии в памяти. Для того, чтобы в памяти можно было что-либо хранить, нужно сначала это что-то каким-либо способом закодировать. Любая мелодия состоит из нот. Каждая нота имеет свой тон (частоту) и длительность звучания. Для того, чтобы закодировать тон ноты, можно просто все ноты пронумеровать по порядку. Удобнее нумеровать, начиная с самого низкого тона. На клавиатуре клавишного инструмента это будет слева направо. Известно, что весь музыкальный ряд делится на октавы. Если вы думаете, что в каждой октаве семь нот, то вы плохо знаете физические основы музыкального ряда. На самом деле в современном музыкальном ряду каждая октава делится на 12 нот. Семь основных нот (белые кла ­ виши) и пять дополнительных (черные клавиши). Деление на основные и дополнительные ноты сложилось исторически. В настоящее время используется музыкальный строй, в котором все 12 нот одной октавы равнозначны. Частоты любых двух соседних нот отли ­

RkJQdWJsaXNoZXIy MTExODQxMg==