Зміст
. Будова мікроконтролера ATMEGA8, огляд алгоритмів, схемних та програмних рішень поставленої задачі
.1 Огляд схемних рішень світлової сигнальної індикації
.2 Будова вибраного мікроконтролера
. Розробка схем структурної, принципової та алгоритму роботи програми
. Розробка програми на мові програмування ASSEMBLER
. Розробка програми на мові програмування C
. Моделювання в PROTEUS VSM
Висновки
Перелік посилань
Додатки
1. Будова мікроконтролера ATMEGA8, огляд алгоритмів, схемних та програмних рішень поставленої задачі
.1 Огляд схемних рішень світлової
сигнальної індикації
Застосування мікроконтролерів в
автоматах світлових ефектів дозволяє значно збільшити їх функціональні
можливості в порівнянні з аналогічними пристроями, виконаними на цифрових логічних
мікросхемах.
Рисунок 1.1 - Мікропроцесорний
пристрій автомата світлових ефектів
Кількість реалізованих різноманітних світлових ефектів обмежується лише фантазією розробника і об'ємом пам'яті мікроконтролера. Крім того, число і вид світлових ефектів можна змінювати для кожного конкретного випадку, підправляючи лише програмне забезпечення [3].
Принципова схема пристрою показана на рис. 1.1. Його основа - мікроконтролер DD1, тактову частоту якого задає кварцовий резонатор ZQ1 на частоту 10000 кГц. Мікроконтролер DD1 через регістр DD2 управляє ключами на транзисторах VT1 - VT8. Відкриваючись, ці транзистори подають напругу живлення на гірлянди світлодіодів. Усього таких гірлянд вісім, і в кожній з них по вісім світлодіодів - HL2 - HL9, HL10 - НL17 і т. д.
Транзистор VT1 подає живлення на гірлянду світлодіодів HL2 - HL9, VT2 - на гірлянду HL10 - HL17 і т. д. Управляє транзисторами регістр DD2. При високому рівні на виході, наприклад 1, з'єднаний з ним через струмообмежуючі резистор R11 транзистор VT1 закритий, при низькому рівні - відкритий.
Резистори R2- R9 обмежують струм через світлодіоди. Який з них в кожній з гірлянд горітиме залежить від рівнів на лініях порту Р 1.0 - Р 1.7 мікроконтролера DD1. При високому рівні всі з'єднані з цією лінією порту (через відповідні струмообмежуючі резистори) світлодіоди не горять, а при низькому горить світлодіод в тій гірлянді, на яку подано напругу живлення.
У пристрої застосована послідовна, так звана динамічна подача напруги на гірлянди Світлодіод HL1 сигналізує про наявність напруги живлення і режимах роботи пристрою, конденсатори С 2 - С 4 - блокувальні.
Після подачі напруги живлення на вхід RST (вивод 1) мікроконтролера DD1 через RC- ланцюг C1R16 надходить високий рівень, який формує сигнал початкової установки. При ініціалізації на всіх лініях порту Р 1 встановлюються високі логічні рівні, які записуються в регістр DD2. Тому на його виходах також високі рівні, транзистори VT1 - VT8 закриті.
У програмі мікроконтролера закладені дванадцять варіантів світлових ефектів, їх опису наведені в таблиці. Номер виконуваного світлового ефекту задають вимикачами SA1 - SA4. Розімкнуті контакти відповідають "1", а замкнуті - "О". Кнопками SB1 - SB5 встановлюють режими роботи пристрою.
При натисканні на кнопку SB1 "Старт / стоп " включають або вимикають ефект, встановлений вимикачами. Кнопка SB2 " Дозвіл " дозволяє або забороняє виконання комбінації світлових ефектів. При натисканні на дану кнопку пристрій отримує дозвіл на виконання комбінації незалежно від положень вимикачів SA1 - SA4, при цьому мигає світлодіод HL1. Для запуску комбінації ефектів слід натиснути на кнопку SB1.
Принципова схема пристрою показана на малюнку. Його основа - мікроконтролер DD1, тактову частоту якого задає кварцовий резонатор ZQ1на частоту 10000 кГц. Мікроконтролер DD1 через регістр DD2 управляє ключами на транзисторах VT1 - VT8. Відкриваючись, ці транзистори подають напругу живлення на гірлянди світлодіодів. Усього таких гірлянд вісім, і в кожній з них по вісім світлодіодів - VD2 - VD9, VD10 - VD17 і т.д.
Транзистор VT1 подає живлення на гірлянду світлодіодів HL2 - HL9, VT2 - на гірлянду VD10 - VD17 і т. д. Управляє транзисторами регістр DD2. При високому рівні на виході, наприклад 1, з'єднаний з ним через струмообмежуючі резистор R11 транзистор VT1 закритий, при низькому рівні - відкритий.
Резистори R2- R9 обмежують струм через світлодіоди. Який з них в кожній з гірлянд горітиме залежить від рівнів на лініях порту Р 1.0 - Р 1.7 мікроконтролера DD1. При високому рівні всі з'єднані з цією лінією порту (через відповідні струмообмежуючі резистори) світлодіоди не горять, а при низькому горить світлодіод в тій гірлянді, на яку подано напругу живлення.
У пристрої застосована послідовна, так звана динамічна подача напруги на гірлянди Світлодіод HL1 сигналізує про наявність напруги живлення і режимах роботи пристрою, конденсатори С 2 - С 4 - блокувальні.
Після подачі напруги живлення на вхід RST (вивод 1) мікроконтролера DD1 через RC- ланцюг C1R16 надходить високий рівень, який формує сигнал початкової установки. При ініціалізації на всіх лініях порту Р 1 встановлюються високі логічні рівні, які записуються в регістр DD2. Тому на його виходах також високі рівні, транзистори VT1 - VT8 закриті, а всі гірлянди знеструмлені.
Рисунок 1.2 - Мікропроцесорний
пристрій автомата світлових ефектів
Пристрій (рис. 1.2) виконано на основі мікроконтролера Atmega8L-8 [4]. У Flash-пам'яті мікроконтролера записані 30 світлових ефектів, які відтворюються послідовно. Перемикання програмного блоку світлового ефекту проводиться за допомогою двох кнопок. Натискання кнопки "+" викликає відтворення наступного в програмі світового ефекту, а кнопки "-" - попереднього. Для зручності порядковий номер кожного світлового ефекту відображається на двох 7-сегментних цифрових індикаторах.
Пристрій живиться від постійної напруги в діапазоні 10...15 В. Як джерело живлення можна використовувати стандартний мережевий адаптер з допустимим струмом навантаження 0,2...0,5 А, Конструктивною особливістю представленого перемикача світлових ефектів є використання елементів поверхневого монтажу, що дозволяє знизити масогабаритні показники пристрою.
Мікроконтролер Atmega8L - 8 (DD1) обраний для управління гірляндами з світлодіодів як найбільш доступний за ціною і простий у програмуванні (підтримує внутрісхемний програмування). Генерація світлових ефектів і опитування кнопок управління відбувається за програмою, розташованої в області Flash - пам'яті програм мікроконтролера.
Сама програма займає трохи більше 4 Кбайт. Внутрішній генератор програмно налаштований на частоту 4 МГц, Індикація номера програми здійснюється на двох 7 - сегментних індикаторах із загальним анодом типу CPD- 03011SR1 / A (HG1 і HG2). Керують індикаторами два включених послідовно зсувних регістра на мікросхемах 74НС 595 (DD2 і DD3).
Зсувні регістри DD2 і DD3 управляються що надходять на вхід S1N (вивод 14) кодом. Послідовне включення регістрів дозволяє відображати на світлодіодних індикаторах HG1 і HG2 десятки і одиниці, не вдаючись до динамічної індикації. Резистори R11... R16 піднімають потенціали на входах мікросхем DD2, DD3 для їх правильної роботи. DD2, DD3 - позитивні імпульси, як буферні інверторів використовуються елементи мікросхем DD4, DD5, PD6. Резистори R3... R24 обмежують струм через світлодіодні індикатори. Імпульси позитивної полярності надходять з висновків 23...26 DD1 на бази VT1...VT4, відкриваючи їх. Резистори R30...R33 не допускають перевищення струму в колах управління транзисторами. Кожен з транзисторів комутує відповідну гірлянду світлодіодів. Паралельно гірляндам включені сигнальні світлодіоди HL1...HL4, які индицируют їх стан. Резистори R26...R29 задають струми через світлодіоди. Для плавного запалювання і гасіння гірлянд використовується транзистор VT5 який управляється ШІМ- імпульсами, які надходять на його базу з порту РВ 1 (виведення 13) мікроконтролера. Змінюючи програмно тривалість імпульсів, можна керувати яскравістю гірлянд. Це відбувається тому, що підключення емітерів VT1... VT4 до загального проводу здійснюється через перехід емітер - колектор VT5. Міняючи тривалість комутуючого імпульсу, можна змінювати величину струму, що протікає через VT1...VT4.
У разі зміни програмного коду і при налагодженні нових світлових ефектів світлодіоди HL1...HL4 використовуються як сигнальні. При необхідності перепрограмування мікроконтролера Atmega8L - 8 можна здійснити внутрісхемний по лініях MiSO, MOSI, SCK.
Відразу після подачі живлення на мікроконтролер починає виконуватися програма. У перших рядках програми встановлюється конфігурація портів і оголошуються змінні. Потім задається конфігурація таймера і порту SPI, через який здійснюється управління світлодіодними індикаторами. Далі дозволяються переривання, і в каналі PWM встановлюється максимальна тривалість імпульсів. На початку основної програми створений цикл з нескінченним повторенням і виходом з циклу за умовою. При цьому жоден з світлодіодів HL1...HL4 не світиться.
Перше натискання кнопки SB1 (" +") викликає перехід до першого програмному модулю. У цьому модулі програмно реалізовано запалювання цифри "1" на світлодіодному індикаторі, включення світлодіода HL1 і відповідної (першої) гірлянди з світлодіодів, підключеної до гнізда ХТ 2.
Кожне натискання на кнопку SB1 викликає включення наступного світового ефекту і відображення збільшеного на одиницю номера програмного модуля, що відтворює світловий ефект. А натискання на кнопку SB2 ("-") викликає включення попереднього світового ефекту і відображення на світлодіодному індикаторі номера програмного модуля. Таким чином, за допомогою кнопок SB1 і SB2 можна встановлювати будь-який з запрограмованих світлових ефектів. Придушення брязкоту контактів кнопок реалізовано програмно. Це необхідно, щоб переривання не спрацювало двічі і не виник ефект " перестрибування " через шматок коду. Величина тимчасової затримки вибрана з урахуванням комфортності користування пристроєм і необхідного часу для придушення хаотичних імпульсів брязкоту.
До складу кожної гірлянди входять 18 світлодіодів, включених паралельно. Для гірлянд придатні вітчизняні світлодіоди АЛ 307КМ або АЛ 307БМ, а також імпортні L5013SRT в корпусі діаметром 5 мм. Кожну з гірлянд можна зібрати з світлодіодів одного або різного кольору світіння.
Світлодіоди можуть бути як звичайними, так і підвищеної яскравості, але в останньому випадку, можливо, доведеться підібрати опору резисторів R34...R37. Гірлянди можна скомпонувати у вигляді світлодіодних ламп. У цьому випадку світлодіоди кожної гірлянди зручно розташувати на круглій друкованій платі, креслення якої показаний на, а розташування елементів.
Всі резистори й неполярні конденсатори - для поверхневого монтажу типорозміру 1206 або 0805. Оксидні конденсатори - у корпусі для поверхневого монтажу, типу " D". Сигнальні світлодіоди - для навісного монтажу, будь-якого типу і кольору, в корпусі діаметром 3 мм, наприклад, L3014. Мікросхема DA1 (7805) - стабілізатор з вихідним напругою 5 В. Її монтаж виконують з боку провідників. Мікроконтролер Atmega8L - 8 - у корпусі TQFP, мікросхеми DD2...DD6 - в корпусах SOIC - 14, SOIC -16. Всі транзистори - у корпусі для поверхневого монтажу SOIC -23. В якості вимикача живлення встановлена малогабаритна двосекційна кнопка (з фіксацією) типу MPS700. Якщо зазначеної кнопки немає, просто замкніть перемичкою комутовані струмоведучі доріжки. При монтажі перемичок рекомендується липкою ізоляційною стрічкою заклеїти весь простір під перемичками, щоб не допустити коротких замикань припоєм, розпаяти перемички на позиціях і акуратно прибрати ізоляційну стрічку.
Запропонований автомат світлових ефектів зібраний на мікроконтролері і світлодіодах, які утворюють контур ялинки. У пристрої реалізовані вісім світлових ефектів [5].
Основа пристрою (рис. 1.3) -
мікроконтролер DD1, він налаштований для роботи з вбудованим тактовим RC-
генератором. Відповідно до керуючої програмою мікроконтролер формує сигнали на
лініях порту GPO - GP2, GP5, які надходять на затвори транзисторів VT1 - VT4.
При низькому рівні на цих лініях транзистори відкриті і живить напруга
надходить на відповідні двоколірні світлодіоди HL1 - HL28, які розміщені на
друкованій платі. Всі резистори (R1- R56) - струмообмежуючі, їх підбіркою можна
змінювати яскравість світіння світлодіодів. Живлення мікроконтролера і
світлодіодів стабілізовано інтегральним стабілізатором DA1.
Рисунок 1.3 - Мікропроцесорний
пристрій автомата світлових ефектів
Рисунок 1.4 - Мікропроцесорний
пристрій автомата світлових ефектів
У пристрої реалізовані вісім світлових ефектів, які змінюються в автоматичному режимі:
Плавне запалювання і згасання всіх світлодіодів червоного кольору світіння;
- Плавне запалювання і згасання всіх світлодіодів зеленого кольору світіння;
- Почергове перемикання кольорів нижньої і верхньої частин ялинки;
- Спалахи світлодіодів червоного кольору світіння з плавним збільшенням частоти;
- Спалахи світлодіодів зеленого кольору світіння з плавним збільшенням частоти;
- Почергова зміна кольору світіння;
- Почергове запалювання нижньої і верхньої частин ялинки червоним кольором;
- Почергове запалювання нижньої і верхньої частин ялинки зеленим кольором.
Автомат, описаний у статті, крім своєї основної функції - включення- виключення чотирьох навантажень по числу ударів в долоні, може управляти будь-яким пристроєм світлових ефектів [6].
У більшості пристроїв світлових ефектів застосовують генератор, частота якого регулюється змінним резистором. Швидкість перемикання ламп або гірлянд при цьому не збігається з темпом музики, і доводиться вручну перенастроювати генератор під кожну мелодію. Запропонований акустичний автомат (рис.1.4) дозволяє перемикати гірлянди відповідно до темпом музики. За відсутності звуку лампи перемикаються з мінімальною частотою, яка встановлюється підбором резистора R11.
Чутливість автомата регулюється підлаштування резистором R8 так, щоб він реагував на музику, але не перемикав канали комутації навантажень.
Практика показує, що крім задіяного четвертого каналу можна використовувати другий чи третій, а від першого взагалі відмовитися, оскільки при різких збільшеннях гучності звуку можливе його спрацьовування.
З мікрофона ВМ 1 сигнал надходить на вхід підсилювача - обмежувача, виконаного на мікросхемі К 538УН 1А. Після посилення сигнал детектується діодами VD5, VD6 і надходить на базу транзистора VT1. У його колекторний ланцюг включений резисторний оптрон U1, який і керує генератор пристрої світлових ефектів. Із збільшенням гучності звуку відкривається транзистор VT1, вихідний опір оптрона зменшується, що призводить до підвищення швидкості перемикання гірлянд.
Транзистор Vt1 відкриваючись повністю, запускається мультивибратор на елементах DD3.3, DD3.4, який формує імпульс низького рівня тривалістю близько 0,1с (визначається опором резистора R3 і ємністю конденсатора C2).
По фронту цього імпульсу запускається другий мультивибратор на елементах DD3.1, DD3.2, який також формує імпульс низького рівня тривалістю приблизно 1.5с. Протягом цього часу (визначається опором резистора R1 і ємністю конденсатора C1) мікросхема DD1 вважає імпульси, відповідні числу ударів. Наприклад, їх було чотири. На виході 4 лічильника - дешифратора DD1, встановиться напруга високого рівня.
Після закінчення четирехсекундного імпульсу на керуючому вході мікросхеми DD2 (висновок 14) низький логічний рівень зміниться високим.
На виході четвертого (зверху за схемою) логічного елемента мікросхеми DD2 також встановиться напруга високого рівня. Воно надходить на вхід R лічильника - дешифратора DD1, обнуляючи його, і, одночасно, перемикає тригер DD5.2. Відкрився транзистор VT5 управляє електромагнітним реле К 4, яке своїми контактами (на схемі не показані) підключає відповідне навантаження. Світлодіод HL4 сигналізує про включення четвертого каналу автомата.
Диференціюються ланцюг C3R6 встановлює всі тригери в початковий стан при включенні живлення автомата.