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

На сторінках журналів можна зустріти багато схем і описів музичних дзвінків, але всі вони мають один недолік - кількість мелодій обмежена (не більше 16), тому вони досить швидко запам'ятовуються і набридають. Пропоноване пристрій здатний синтезувати до 120 мелодій, які відтворюються послідовно з кожним наступним натисканням звонковой кнопки.

Принципова схема дзвінка зображена на малюнку. Його основа - мікроконтролер AT90S8515-8PI фірми ATMEL. При натисканні на звонковую кнопку SB 1 включається живлення пристрою, починає працювати програма, записана в пам'ять мікроконтролера, і на виведенні 39 (РАВ) з'являється напруга лог. 1. В результаті відкривається транзистор VT1, спрацьовує реле К1 і своїми контактами До 1.1 блокує кнопку дзвінка.

Для формування коливань 3Ч використовується таймер мікроконтролера і його режим роботи на перемикання зовнішнього виводу PD5 (для отримання потрібної звуковий частоти частоту роботи таймера потрібно помножити на два). Сигнал, що знімається з цього виведення, посилюється складовим транзистором VT2VT3, в колекторних ланцюг якого включена динамічна головка ВА1. Для регулювання гучності послідовно з нею можна включити підлаштування резистор R5 (зображений штриховою лінією).

Після програвання мелодії програма записує в енергонезалежну пам'ять (EEPROM) мікроконтролера покажчик на наступну мелодію, високий рівень на його виведення 39 змінюється низьким і реле розриває ланцюг живлення до наступного натискання на кнопку SB1.

Мелодії для дзвінка взяті з програми Melody Player for Motorola (знаходиться в архіві mp4m.rar). Для конвертування мелодій в асемблерний вид написана програма motcvt (знаходиться в архіві motcvt.гаг). Використовуючи її, неважко змінити/додати/прибрати будь-яку мелодію. При запуску в командному рядку вказують ім'я файлу з мелодіями від mp4m та ім'я, під яким треба записати результуючий файл (наприклад, mel.inc).

Вихідні тексти програми для мікроконтролера знаходяться в архіві zvonok.rar, основні моменти прокоментовані. При використанні кварцового резонатора на іншу частоту необхідно в рядку .equ fsck = 3618400 файлу zvonok.asm змінити значення частоти (3618400) на фактично використовується (в герцах). Все інше перерахує асемблер. Програма написана і відлагоджена з допомогою AVRStudio 4.0 Build 181.

Джерело живлення U1 - будь стабілізований з вихідною напругою 5 В (можна використовувати батарею, складену з гальванічних елементів або акумуляторів). Замість BESTAR BT-5S допустимо застосування будь-якого з реле напругою спрацьовування не більше 4,5 В і контактами, розрахованими на комутацію мережевої напруги 220 В.

В процесі налагодження пристрою виявлено, що вміст енергонезалежній пам'яті даних мікроконтролера може зіпсуватися, якщо після вимикання живлення напруга падає до 0 повільно (більше 10 мс). Справа в тому, що при плавному його зниження мікроконтролер деякий час продовжує працювати, а це може викликати невірні декодування і (або) вибірку команд, що, в свою чергу, здатне спровокувати несанкціоновану запису в EEPROM. Для запобігання псування вмісту пам'яті можна використовувати так званий детектор зниження напруги живлення (вітчизняний КР1171СП47 або його зарубіжний аналог PST529), який при зниженні напруги живлення нижче встановленого порогу видає сигнал Reset, зупиняючи тим самим роботу мікроконтролера. Автор цієї цілі використав резистор R6, підключений до виходу в якості джерела живлення додаткового навантаження (на схемі показаний штриховою лінією).

Файли проекту

Автор: М. Білецький, Уфа р.