Виберіть свою мову

Черговий гипермегадевайс на мікроконтролері.

Ось схема:

Складного взагалі нічого. До виходу цієї схеми можна підключати будь-динамік з опором 4 Ом до нескінченності. В принципі, можна просто включити між 15 ногою мікросхеми і землею високоомний динамік (більше 1 кОм) - і спокійно слухати.

А ось і ісходник програми контролера: patriot.asm

Дивимося в текст програми. Шукаємо в ній великий масив, який називається HymnUSSR. У цьому масиві міститься музичка Гімну СРСР ака Росії. Після прошивки він відразу ж почне радувати ваш слух.

Як? Він вас не радує??? Ну будь ласка - ви можете запросто написати свою мелодію. Це зробити дуже просто.

Відразу після масиву перераховані ноти та відповідні їм числа. Перший рядок відповідає середній октаві, 2-я - великий, 3-я - першою.

Крім того, числами в масиві позначаються тривалості. То є, запис кожної ноти йде два числа. Перше - код ноти, друге - тривалість (в умовних одиницях). Поекспериментуйте з цим.

Ще існують паузи. Пауза має код 254. Вона також пишеться в парі з тривалістю.

В кінці мелодії обов'язково має стояти число 255, інакше програма продовжить читати пам'ять за межами масиву і в результаті - щасливо заглючить :(

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

Перспективи.

Як можна це все апгрейдити?

Можна дописати модуль вибору мелодії (якщо їх кілька). Вибирати мелодії можна або послідовним перебором, або введенням номера з клавіатури, або ще як-небудь. Крім того, якщо робити з цього дверний дзвінок - можна написати модуль розпізнавання "стилю" натискання на кнопку (типу азбуки Морзе), і відповідно з цим включати певну мелодію.

Та взагалі багато чого можна... Була б фантазія.

Наостанок хочу попросити: якщо ви напишете музичку для цього девайса або як-то апгрейдите його - будь ласка, поділіться з нами. Не скупіться. Адже Я не скупився? :)

Upd. Наш колега з ніком masya13 надіслав нам парочку мелодій, які можна скачати тут і ще тут.

Публікація: www.radiokot.ru, www.cxem.net